Activity各种情况下的生命周期

这篇博客详细阐述了Android中Activity在不同场景下的生命周期变化,包括从ActivityA跳转到ActivityB并返回、横屏切换、按back键退出以及按home键到桌面时的流程。讨论了onCreate、onStart、onResume、onPause、onStop和onDestroy等方法的调用时机,以及界面可见性的变化。强调了Activity生命周期与界面焦点的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)ActivityA创建,然后ActivityA跳转到ActivityB,然后从ActivityB返回ActivityA过程中两个Activity的生命周期流程?

onCreate(A)->onStart(A)->onResume(A)->onPause(A)->onCreate(B)->onStart(B)->onResume(B)->onStop(A)->onPause(B)->onRestart(A)->onStart(A)->onResume(A)->onStop(B)->onDestroy(B)

当Activity的onStop()方法被调用后,Activity退入了后台,如果这时有其它优先级高的程序需要内存,Activity很可能被杀死。如果Activity被杀死,则从ActivityB返回ActivityA后Activity需要重新创建;如果ActivityA没有被杀死,则从ActivityB返回ActivityA遵循上面的生命周期流程。

(2)ActivityA创建,然后切换成横屏的生命周期流程?

没有写onSaveInstanceState()方法的情况:

onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy()->onCreate()->onStart()->onResume(),即横竖屏切换时会先销毁当前Activity,再重新创建一个横/竖屏。

写了onSaveInstanceState()方法的情况:

onCreate()->onStart()->onResume->onPause()->onSaveInstanceState()->onStop()->onDestroy()->onCreate()->onStart()->onResume()。

(3)按back键返回,当前Activity执行的生命周期方法?

onPause()->onStop()->onDestroy()。

(4)按home键到手机桌面,当前Activity执行的生命周期方法?

onPause()->onStop()

(5) Activity生命周期方法调用时界面是否可见?

onCreate():不可见

onStart()、onResume():可见

onPause():部分可见(被一个半透明页面遮盖的时候)

onStop():不可见

onDestroy():不可见

         注:Activity生命周期主要依赖于从创建到销毁和界面是否有焦点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值