Android 启动模式

2019-03-18  本文已影响0人  小小卒_oO_

1.Standard(标准模式):启动Activity,即新建一个新的实例入栈。
2.SingleTop(栈顶复用):要启动的Activity若在栈顶,直接复用。若不在,则新建入栈。
3.SingleTask(栈内复用):要启动的Activity若在栈中,复用并弹出它上面的其他Activity。
4.SingleInstance(单实例):使用单独的一个任务栈。

使用方法:

<activity android:name="..activity.MultiportActivity" android:launchMode="singleTask"/>

可对应使用上面的4种模式。

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

上一篇 下一篇

猜你喜欢

热点阅读