设置一个launchMode
<activity
android:name=".SingleTaskActivity"
android:label="singleTask launchMode"
android:launchMode="singleTask">
1默认为standard
这种模式下,当Intent发送的时候,Activity总是被创建一个新的出来单独工作
2 singleTop
这种模式下,也是创建一个,但是当唯一的区别是如果在栈顶已经有一个相同类型的Activity实例,Intent不会再创建一个Activity,而是通过onNewIntent()被发送到现有的Activity。
3 singleTask
这种模式下,会先查找栈中是否已经实例,如果已经实例了,intent将被通过onNewIntent()发送,将对象重新放在栈顶。如果没有,则会创建一个新的Activity并置放在合适的任务中。(任务栈中只存在一个实例)
4 singleInstance
这种模式同singlInstance差不多,系统中只允许一个Activity的实例存在。区别在于持有这个Activity的任务中只能有一个Activity:即这个单例本身
具体这个没搞懂,不过使用率很低
(三种方式并没有实践过,以后用到会回来补充)