1.Standard(标准模式):启动Activity,即新建一个新的实例入栈。
2.SingleTop(栈顶复用):要启动的Activity若在栈顶,直接复用。若不在,则新建入栈。
3.SingleTask(栈内复用):要启动的Activity若在栈中,复用并弹出它上面的其他Activity。
4.SingleInstance(单实例):使用单独的一个任务栈。
使用方法:
- 1.静态指定:
<activity android:name="..activity.MultiportActivity" android:launchMode="singleTask"/>
可对应使用上面的4种模式。
- 2.动态启动(优先级高):
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
FLAG_ACTIVITY_SINGLE_TOP
对应SingleTop
。
FLAG_ACTIVITY_NEW_TASK
使新启动的 Activity 独立创建一个 Task;
FLAG_ACTIVITY_CLEAR_TOP
清除上面的Activity,一般结合 FLAG_ACTIVITY_NEW_TASK
一起使用。
*复用时会回调Activity中的onNewIntent方法。
*可用taskAffinity
属性,指定任务栈。MainActivity没有指定taskAffinity属性,默认为包名。
<activity
android:name=".SingleTaskActivity"
android:launchMode="singleTask"
android:taskAffinity="${applicationId}.singleTask"/>
参考:
https://www.cnblogs.com/claireyuancy/p/7387696.html
https://blog.csdn.net/sinat_14849739/article/details/78072401
https://www.jianshu.com/p/b60d8097e519
网友评论