现在的位置: 首页 > 综合 > 正文

安卓Activity的生命周期函数详解

2018年05月16日 ⁄ 综合 ⁄ 共 1379字 ⁄ 字号 评论关闭

首先上个官图:
http://developer.android.com/reference/android/app/Activity.html

记住核心方法:onStart()onStop()

onCreate (创建:做一些初始化的工作)

Activity初次创建时被调用

一般在这里创建view,初始化布局信息,将数据邦定到list以及设置监听器等等。如果Activity首次创建,本方法将会调用onStart();如果Activity是停止后重新显示,则将调用 onRestart()

 

onStart(开始:可见)

当Activity对用户即将可见的时候被调用,其后调用onResume
 

onResume(恢复:可操作界面)

当用户能在界面中进行操作的时候(获得焦点等)被调用

 

onPause(中断:该Acitvity中断前的一些操作,即:当前Activity不再是栈顶的状态时候,把相关的事情处理好改activity才能中断)

当系统要启动一个其他的Activity时调用(其他的activity显示之前),这个方法被用来停止动画和其他占用CPU资源的事情。所以在这里应该提交保存那些持久数据,这些数据可以在onResume方法中读出

 

onStop(停止:不可见,也不可操作界面)

当另外一个Activity恢复并遮盖住当前Activity,导致用户不再可见时调用。一个新Activity启动、其他Activity被切换至前景、当前Activity被销毁时都回调用此函数。如果当Activity重新回到前景与用户交互时会调用onRestart(),如果Activity将退出则调用onDestroy

onDestroy(毁灭:彻底杀掉这个activity)

当前Activity被直接关闭或者系统资源不足时被调用
在当前的Activity被销毁前所调用的最后一个方法,当进程终止时调用

onRestart

当Activity停止后(即调用onStop)重新显示的时候,会被调用,然后调用onStart

 

自己可以创建两个Activity去测试:

 

测试流程如下:

一、启动一个新的Activity,就会启动三个函数
  * onCreate
  * onStart
  * onResume

 当这个Activity长时间处在栈顶,而手机设备一直没操作而导致锁屏,这时会调用以下函数
  * onPause
  * onStop

当屏幕解锁后,这个Activity会显示出来,会调用一下函数
 onRestart()
 onStart()
 onResume()
 

 当按下返回键,这个新的Activity就会启动三个函数
  * onPause
  * onStop
  * onDestroy
 

二、启动另外一个Activity时,原本的Activity会启用onpause函数
另外一个Activity启动以下函数:
  * onCreate
  * onStart
  * onResume
 启动成功后,原本的Activity启动onstop函数

三、在另外的那个Activity中,按返回键:
     首先,另外的Activity会启动onPause(),
     然后,原来的Activity ,启动onRestart()、onStart()、onResume()
     最后,另外的Activity会启动onStop()、onDestroy() 

抱歉!评论已关闭.