Android

Activity的生命周期

Starting-> running-> poused-> stopped-> killed

一、生命周期

onCreate

在Activity创建时调用,通常做一些初始化设置;

onStart

在Activity即将可见时调用;

onResume

在Activity已可见,获取焦点开始与用户交互时调用;

onPause

在当前Activity被其他Activity覆盖或锁屏时调用;

onStop

在Activity对用户不可见时调用;

  • 如果新Activity是透明主题时,旧Activity不会走onStop

onDestroy

在Activity销毁时调用;

onRestart

在Activity从停止状态再次启动时调用;

二、介绍

  • 锁屏时只会调用onPause(),而不会调用onStop方法,开屏后则调用onResume()。

  • 清单文件中未设置 android:configChanges 属性时,生命周期:先销毁onPause()、onStop()、onDestroy()再重新创建onCreate()、onStart()、onResume()方法。

  • 设置 android:configChanges=“orientation|screenSize” 属性值时,不走生命周期方法,只会执行onConfigurationChanged()方法。

  • 弹出 Dialog、Toast、PopupWindow 时不会对生命周期有任何影响,因为其本质上是WindowManager.addView()显示的。

  • 启动一个theme为Dialog的Activity时,生命周期为:Activity1.onPause -> Activity2.onCreate -> Activity2.onStart -> Activity2.onResume。Activity1不会调用onStop,弹出 Dialog 主题的 Activity2时Activity1的页面还是可见的,只是失去了焦点而已所以仅有 onPause 回调。

  • onCreate内setContentView加载好布局,生成一个viewTree。在onResume的时候,创建一个ViewRootImpl显示页面。

  • onActivityResult调用时机:Activity2返回到Activity1时,Activity2.onPause -> Activity1.onActivityResult -> Activity1.onRestart -> Activity1.onStart

  • onNewIntent调用时机:如果需要启动的实例是之前有打开过的,并且在栈的顶部,目前处于onPause、onStop 的状态,其他实例再次进入的话,执行顺序为:onNewIntent,onRestart,onStart,onResume。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值