Android:Activity生命周期

本文详细介绍了Android中Activity的生命周期及其四种状态:运行状态、暂停状态、停止状态和销毁状态,并解释了各生命周期回调方法的作用及调用时机。

参考: 《第一行代码:Android》 郭霖(著)

 

 

 

Activity所在的栈为后进先出(Last In First Out)结构。

 

Activity状态

  1. 运行状态(S1):

  • 该Activity处于与User交互的状态,即是位于栈顶的Activity。

  • 系统一般不考虑回收该处内存。

暂停状态(S2):

  • Activity不再处于栈顶(Another activity comes in front of the activity),但仍然是可见的。

  • 系统只有在内存极低时才考虑回收内存。

停止状态(S3):

  • Activity不处于栈顶&完全不可见(The activity is no longer visible)。

  • 系统会保存该Activity相应的状态和变量,但内存被回收的几率增大,即不能保证该Activity没有被回收。(Process is killed)

销毁状态(S4):

  • Activity从栈中被移除(调用finish()或点击Back键)。

  • 重点回收该状态下的Activity占用的内存。

 

Activity生存期

  1. onCreate()

  • Activity被创建时调用,完成各种初始化操作。

onStart()

  • Activity由不可见(invisible)变为可见(invisible)时调用。

onResume()

  • Activity准备好与User交互时调用,此时activity一定位于栈顶(S1).

onPause()

  • 调用了其他Activity(不再位于栈顶),关键数据会被保存,但仍处于可见状态(visible, S2).

onStop()

  • Activity变为不可见(invisible)时调用(S3)。

onDestroy()

  • Activity被销毁前调用(S4)。

onRestart()

  • Activity由停止状态变为运行状态前调用(S3→S1,即不可见→可见)。

  • 由于onStop()时Activity的内存可能已经被回收,所以在调用onStart()变为可见前要调用onRestart()作准备。

补充

  • 除了onRestart()外,其余生存期为一一对应关系

  • onCreate() vs onDestroy()

  • onStart() vs onStop()

  • onResume vs onPause()

 

 

转载于:https://my.oschina.net/SCVTheDefect/blog/522607

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值