Android Activity 启动模式

Android Activity 启动模式

Activity作为Android四大组件之一,其重要性不言而喻,学好Activity也是必不可少的。
一个APP一般拥有许多的Activity,在Android系统中,Activity使用任务栈来保存管理的。当你启动一个Activity时,如果当前手机或虚拟机环境没有该任务栈,那么就会新建一个任务栈。

应当注意:一个栈可能包含不同APP的Activity,一个APP的Activity可能不在同一栈。

activity拥有四种启动模式

  • standard

    默认的启动模式,使用standard方式启动Activity,每次启动新的activity覆盖在原Activity上。

  • singleTop

    该启动模式在Activity启动时会判断栈顶Activity是否为要启动的Activity,是则直接引用,不是就创建新的。该启动模式一般适用于接收新消息后的提醒界面

  • singleTask

    如果是在同一个APP中启动Activity,该启动模式会在启动Activity前检测该栈中是否有该Activity,有的话就会将该Activity调到栈顶,并且将该Activity以上的Activity全部销毁。不是同一个APP中则会新建一个任务栈。该启动模式一般适用于退出整个应用

  • singleInstance

    该启动模式通常用于需要与程序分离的界面,启动Activity时会新建一个任务栈,并且该任务栈只有这一个Activity。当一个APP启动该Activity,如果其它APP也需要使用该Activity,则直接共享该Activity的实例。

选择Activity的启动模式,可以通过在AndroidMainifest中设置。

//standrad为默认的
<activity android:name=".MainActivity"
            android:launchMode="standard">
</activity>

//singleTop
<activity android:name=".MainActivity"
            android:launchMode="singleTop">
</activity>

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

//singleInstance
<activity android:name=".MainActivity"
            android:launchMode="singleInstance">
</activity>

猜你喜欢

转载自blog.csdn.net/young_time/article/details/78704642