Android提供了很多Activity的生命的函数。常用的有:onCreate(),onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart()方法等。
流程图如下:
我通过重写生命周期方法,输出语句“执行了XXXX方法”来判断安卓各个生命周期函数的执行顺序。通过查阅一些资料在结合实验,了解生命周期的执行情况。
我的程序很简单,就是实现一个登陆界面,然后输入登陆信息过后,界面跳转。查看几种情况下,各方法的执行情况。
情景一:程序启动Activiity
首先模拟器调用的方法是onCreate方法,紧接着调用onStart方法创建Activity和界面,最后调用onResume方法,使得Activity和用户开始交互,获得焦点。此时,Activity进入运行状态。
情景二:当用户输入信息后,点击登录
此时,模拟器执行了onPause()方法,当前的activity被暂停。因为界面挑战到第二个activity。当前activity被第二个activity覆盖。
当界面跳转成功后,onStop()方法被执行。
情景三:当程序重新开始运行,并输入信息。
模拟器执行第一个activity需要调用的方法。但是在输入信息后,调用了ondestory方法。
随后就是创建调用第二个activity时需要用到的方法。
情景四:退出当前activity
结束了当前的activity。
最后通过查阅一些资料结合本次测试,大致总结一下activity的生命周期函数:
onCreate():创建Activity调用,用于Activity的初始化,在Activity生命周期中只执行一次,适用于实例化对象
onStart():Activity:在屏幕上对用户可见时调用
onResume():Activity开始和用户交互的时候调用,这时该Activity是在Activity栈的顶部 获焦的时候
onPause():Activity被暂停时调用,被其他的Activity挡在后面,这里可以做一些清理和保存工作
onStop():Activity被停止或者Activity变成不可见时调用
onDestroy():Activity被从内存中移除,一般发生在执行finish方法时或者Android回收内存的时候
1.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
2.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
3.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
4.当前Activity处于被覆盖状态或者后台不可见状态,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
5.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。