重学Android——activity的生命周期

311 阅读1分钟

activity的生命周期

onCreate

activity正在被创建,在这里做一些初始化工作

onRestart

actvity正在重新启动,正常由用户行为导致

onStart

activity正在被启动,activity此时已可见,但仍然处于后台,无法进行交互

onResume

activity可见,并处于前台,可以进行交互

onPause

activity正在停止,正常情况下会马上调用onStop,特殊情况下快速回到activity会调用onResume

onStop

activity即将停止,可以做一部分回收工作,不能太过耗时

onDestory

activity即将被销毁,在这里做回收工作以及资源释放

生命周期切换过程

下图来自android官网,关于生命周期的切换过程

activity_lifecycle.png

具体分为如下几种情况:

  1. 首次启动的activity:onCreate->onStart->onResume;

  2. 在当前activity上启动新的activity:onPause->onStop,若新activity采用透明主题则当前activity不会回调onStop;

  3. 用户回到原activity:onRestart->onStart->onResume;

  4. 当用户点击back键回退时:onPause->onStop->onDestory;

  5. activity被系统回收:onPause->onStop->onDestory->onCreate->onStart->onResume,系统还会调用onSveInstanceState(在onStop之前调用)保存当前activity的一些状态,调用onRestoreInstanceState(在onStart之后调用)可以获取到onSveInstanceState中保存的数据;