相关概念
- Task :是一个栈结构,activity存放的地方
- 当前页面的activity需要显示,则必须在栈顶
Activity启动模式
- standard 标准模式,每次都新建一个实例对象
- singleTop 如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶
- singleTask 如果在任务栈中发现了相同的实例,将其上面的任务终止并移除,重用该实例。否则新建实例并入栈
- singleInstance 允许不同应用,进程线程等共用一个实例,无论从何应用调用该实例都重用
记忆方式
- singleTop 栈顶单例,只有在栈顶时才不复用
- singleTask 栈中单例,所以启动时其上面的都会被弹出
- singleInstance 单实例,也就是全局单例
设置方式
-
在Manifest中设置
四种方式都可以
<activity android:name=".MainActivity" android:launchMode="singleInstance"/>
-
在startActivity()时为intent设置
此方法,可以设置一些Manifest中不能设置的(四个启动模式之外的一些参数)
Intent intent = new Intent(this,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);