正常情况下的Activity生命周期--《android艺术探索》读书笔记

正常情况下的Activity生命周期.

  • onCreate:第一个方法,加载布局资源,初始化数据
  • onStart:在后台,看不到,即将显示,onRestart之后会调用这个方法
  • onResume:在前台,和onStart同样可见,不同的是onStart在后台,onResume在前台
  • onPause:正在停止,正常情况下,onStop紧接着马上被调用.特殊情况:很快速的回到当前activity(onPause->onResume),很极端.在这个方法内可以做一些存储数据,停止动画等释放资源的动作,但是也不能太耗时,不然会影响新activity的显示(用户看来就是卡顿)
  • onStop: 即将停止.稍微重量级的回收工作,同样不能太好使.
  • onDestory: activity被销毁.生命周期的最后一个方法.
  • 用户回到已启动的activity:正常情况下,onStop->onRestart->onStart->onResume;如果高优先级的应用需要内存,Activity被杀死回收再回到该界面:onStop->onCreate->onStart->onResume,不经过onRestart,资源被回收了.
  • activity第一次启动:onCreate->onStart->onResume
  • 打开新activity或回到桌面:onPause->onStop ;特殊情况:当activity为透明主题时,不会执行onStop.
  • 点返回键:onPause->onStop->onDestory
  • 配对:onCreate,onDestory,只执行一次;onStart,onStop:设备亮屏,息屏;onResume,onPause:是否在前台.
  • onStart onResume, onPause,onStop的区别:含义不同,onStart,onStop是同activity是否可见角度回调.onResume,onPause是从是否在前台角度回调.
  • activity的启动过程:Instrumentation(处理activity启动请求,通过Binder向ActivityManagerService发请求),ActivityThread(同步activity状态的线程).AMS(在ActivityThread中维护ActivityStack)
  • 问题:A启动B,A的onPause,以及B的onResume,谁先执行? 答:在ActivityStack的resumeTopActivity方法中,we need start pausing the current activity so the one can resumed. 新activity启动前,栈顶activity需要onPause之后,新activity才能启动.onPause之后最终会在ActivityStackSupervisor中realStartActivityLocked中真正启动新acitivity.
  • A启动B: A onPause --> B onCreate --> B onStart--> B onResume --> A onStop. 由此可以看出,不要再onPause中执行重量级耗时操作,应该尽量在onStop中做操作,使新Activity尽快显示并切换到前台.

《android艺术探索》读书笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值