Activity生命周期(1)—事件回调函数
博客专区 > iBazinga 的博客 > 博客详情
Activity生命周期(1)—事件回调函数
iBazinga 发表于1年前
Activity生命周期(1)—事件回调函数
  • 发表于 1年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 0

华为云·免费上云实践>>>   

Activity生命周期

Activity从启动到销毁的过程。

Activity的4种状态

  • 活动状态
  • 暂停状态
  • 停止状态
  • 非活动状态 

Activity栈

栈顶的Activity处于活动状态,除栈顶以外的其他Activity处于暂停状态或停止状态,而被终止的Activity或已经出栈的Activity则不在栈内。

        随着用户在界面进行的操作,以及Android系统对资源的动态管理,Activity不断变化其在Activity栈中的位置,状态也不断在4种状态间转变。随着Activity自身状态的变化,Android系统会调用不同的事件回调函数,开发人员在事件回调函数中添加代码,就可以在Activity状态变化时完成适当的工作。

 Activity事件回调函数

1.Activity生命周期的事件回调函数 

函数 是否可终止 说明
onCreate() >Android启动后第一个被调用的函数
>常用来进行Activity的初始化(如创建view、绑定数据、恢复信息等)
onStart() >Acrivity显示在屏幕上时,该函数被调用
onRestart() >Acrivity从停止状态进入活动状态前,调用该函数
onResume() >当Acrivity可以接受用户输入时,该函数被调用
>此时的Activity处于Activity栈顶
onPause() >Acrivit进入暂停状态时,该函数被调用
>主要用来保持持久数据、关闭动画、释放CPU资源等
>该函数必须简短,因为另一个Activity必须等待该函数执行完毕后才能显示在界面上
onStop() >当Acrivity不对用户可见后,该函数被调用,Activity进入停止状态
onDestroy() >Acrivity被终止(进入非活动状态)前,该函数被调用
>程序主动调用finish()函数或程序被Android系统终结

 2.Activity状态保存/恢复的事件回调函数

函数 说明
onSaveInstanceState() 暂停或停止Acrivity前调用该函数,用以保存Activity的临时信息
onRestoreInstanceState() 恢复onSaveInstanceState()保存的Activity状态信息

        onSaveInstanceState() 和 onRestoreInstanceState() 函数不属于生命周期的事件回调函数,onSaveInstanceState() 在Activity 被暂时停止时(或被其他程序中断或者锁屏)被调用,而Activity被完全关闭时(调用 finish() 函数)则不会被调用。当暂停的Activity被恢复时,系统调用 onRestoreInstanceState() 函数。

        onSaveInstanceState() 函数会将界面临时信息保存在Bundle中,onCreate() 函数和onRestoreInstanceState() 函数都可以恢复这些保存的信息。一般简化的做法是在 onCreate() 函数中恢复保存数据,但有些特殊情况还是需要使用 onRestoreInstanceState() 函数恢复保存信息。如必须在界面完全初始化完毕后才能进行的操作,或有子类来确定是否采用默认设置等。(存疑)

标签: Android
共有 人打赏支持
粉丝 12
博文 121
码字总数 39904
×
iBazinga
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: