安卓Activity启动模式
程序员文章站
2022-03-16 07:57:56
...
1.启动模式说明
1.1standard 标准模式:
说明:Android创建Activity时的默认模式。每次启动一个Activity都会又一次创建一个新的实例入栈,无论这个实例是否存在。
生命周期:如上所看到的,每次被创建的实例Activity 的生命周期符合典型情况,它的onCreate、onStart、onResume都会被调用。
1.2SingleTop 栈顶复用模式:
说明:分两种处理情况:须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的Activity不处于栈顶,此时会又一次创建一个新的Activity入栈,同Standard模式一样。
生命周期:若情况一中栈顶的Activity被直接复用时,它的onCreate、onStart不会被系统调用,由于它并没有发生改变。可是一个新的方法 onNewIntent会被回调(Activity被正常创建时不会回调此方法)。
1.3 SingleTask 栈内复用模式
说明:如果要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。
生命周期:同SingleTop 模式中的情况一同样。仅仅会又一次回调Activity中的 onNewIntent方法。
1.4 SingleInstance 单实例模式
说明: SingleInstance比较特殊,是全局单例模式,是一种加强的SingleTask模式。它除了具有它所有特性外,还加强了一点:具有此模式的Activity仅仅能单独位于一个任务栈中。
2.使用方法
在 Manifest.xml中指定Activity启动模式。
一种静态的指定方法,在Manifest.xml文件里声明Activity的同一时候指定它的启动模式,这样在代码中跳转时会依照指定的模式来创建Activity。样例例如以下:
<activity android:name="..activity.MultiportActivity" android:launchMode="singleTask"/>