activity的启动模式
standard模式,默认模式
standard模式可以允许打开多个相同的实例,也可以使用相同实例叠加。
singleTop模式
singleTop模式可以允许存在多个实例,但是不允许实例叠加。
下面这种情况是无法在打开新窗口的
Intent intent=new Intent(MainActivity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);
singleTask模式
只允许存在一个实例。当有a1,a2,a3三个activity时。a2为singleTask模式。
打开窗口:a1->a2->a3->a2。内存中的结构为:a1->a2。a3会被干掉。
<activity android:name=".TestActivity" android:launchMode="singleTask"></activity>
singleInstance模式
只允许存在一个实例。当有a1,a2,a3三个activity时。a2为singleInstance模式。
打开窗口:a1->a2->a3->a2。内存中的结构为:a1->a3->a2。