烤面筋_1
问:Activity A启动B,过程中的生命周期
activity A启动activity B的生命周期变化?B 不透明。
A onPause()—B onCreat()—B onStart()— B onResume() — A onStop();(B是半透明的,则A不会 onStop())
再关闭activity B的生命周期,B 不透明。
B onPause()—A onRestart()—A onStart()—A onResume()—B onStop()—B onDestroy()
问:Activty启动模式,什么时候会用到singleInstance?
-
Standard 标准
-
SingleTop 栈顶复用
-
SingleTask 栈内复用
-
-
standard
-
重复创建多个实例
-
谁启动了这种模式的 Activity,新 Activity 就会运行在启动者所在的栈中
-
-
-
singleTop
-
如果位于栈顶则不会重复创建,不调用
onCreate和onStart,直接调用onNewIntent()方法
-
-
singleTask
-
只要 Activity 在一个栈中有实例,多次启动此 Activity 都不会创建实例,也是直接调用
onNewIntent() -
启动 singleTask 的 Activity 时,系统会先找有没有想要的任务栈,没有就新建个任务栈;有就看栈里有没有实例
-
栈内有实例,就会把该 Activity 调到栈顶,同时 clearTop(之前在它前面的都被清除)
-
一般用于 MainActivity,因为回到首页后需要清除之前的页面
-
-
singleInstance
-
就是霸道一点的 singleTask
-
启动后新建一个任务栈,这个栈里只会有它一个
-
拨号、闹钟
-
应用场景
-
standard:普通展示页面
-
singleTop :适用于展示通知详情的Activity,在点开某个通知后,再点开一个通知就复用
-
singleTask:应用主页,MainActivity
-
singleInstance:拨号、闹钟
(本专题会在工作日每天更新,有错误的地方,望指正。)
浙公网安备 33010602011771号