一、Activity生命周期及启动模式

Activity生命周期及启动模式

这里写图片描述
1、Activity被其他Activity覆盖或者锁屏,调用onPause;
2、解除覆盖或开屏,调用onResume;
3、A➡️B:
A.onPause-B.onCreate-B.onStart-B.onResume-A.onStop
4、B➡️A:
B.onPause-A.onRestart-A.onStart-A.onResume-B.onStop-B.onDestory
5、HOME键:
onPause-onStop
5、HOME后返回:
onRestart-onStart-onResume
6、横竖屏切换:
(1)设置 android:configChanges=”orientation” 和不设置这个属性,生命周期表现为重新创建activity
(2)设置 android:configChanges=”orientation|keyboardHidden”,在2.3上表现为不重新创建activity,4.0如下

  a)android:targetSdkVersion<=”12”,生命周期表现为不重新创建activity

  b)android:targetSdkVersion>”12”,表现为重新创建activity
(3)设置 android:configChanges=”orientation|keyboardHidden|screenSize”,在2.3和4.0上都表现为不重新创建
1)重新创建activity的生命周期

      a)2.3上:onSaveInstanceState->onPause->onStop->onCreate->onStart->onRestoreInstanceState->onResume

      b)4.0上(3.2我没测试,只测试了4.0的):onPause->onSaveInstanceState->onStop->onCreate->onStart->onRestoreInstanceState->onResume

    2)不重新创建activity,只会调用 onConfigurationChanged

启动模式:
standrad:默认情况,允许重复;
singleTop:适合接收通知启动的内容显示页面
A➡️B➡️A:A➡️B➡️A;
B➡️A➡️A:B➡️A➡️不再创建实例,调用onNewIntent方法。
singleTask:适合作为程序入口点。
已有实例则弹出上面的Activity,并调用onNewIntent,没有则创建
A➡️B➡️A:A➡️B➡️B出栈;
B➡️A➡️A:B➡️A➡️不再创建实例,调用onNewIntent方法。
singleInstance:适合需要与程序分离开的页面。
A➡️B:栈1.A➡️栈2.B; 此时按返回键则栈2.B出栈,然后栈2销毁。如果重新进入应用,显示的是栈1.A。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值