Android:Activity启动模式

    xiaoxiao2021-12-02  17

    在AndroidManifest.xml中配置: <activity     android:name=".MainActivity"     android:launchMode="standard"> 有以下四种: standard: 默认模式,每次通过Intent启动Activity时都会创建一个新的Activity实例,并放入任务栈中。 singleTop: 每次通过Intent启动Activity时,如果栈顶存在该Activity的实例,就重用该实例(会调用实例的onNewIntent()),否侧就会创建新的实例并放入栈顶(非栈顶位置即使存在该实例也会创建新的实例)。 singleTask: 每次通过Intent启动Activity时,会查找栈中有无该Acitivty实例,有则移到栈顶重用,其他位于该实例上面的全部被移出栈,没有则创建新的并放入栈顶。 singleInstance: 第一次通过Intent启动Activity时,会创建一个新实例并放入新的栈中,以后无论调多少次都会重用该栈中的Activity实例(会调用实例的onNewIntent()),多个应用可以共享该实例。

    Flags:

    FLAG_ACTIVITY_NEW_TASK 要启动的activity将会在一个新的task中启动,如果已经有一个task在运行你要启动的activity,这是将不会启动新的activity,而是把这个拥有你要启动activity的task切换到前台,保持它最后操作是的状态。 FLAG_ACTIVITY_SINGLE_TOP:: 类似于singleTop

    FLAG_ACTIVITY_CLEAR_TOP: 类似singleTask

    FLAG_ACTIVITY_NO_HISTORY: 无记录模式,用此模式启动的actiivty,在启动新actiivty后,此actiivty会退出。

    FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS: 新启动的actiivty不添加到最近应用列表(AndroidManifest.xml中Activity的android:excludeFromRecents="true"属性等同效果)

    转载请注明原文地址: https://ju.6miu.com/read-679850.html

    最新回复(0)