一:activity的生命周期:html
二:created->resumedandroid
当一个应用程序的启动图标被用户点击后,应用程序开始从Activity的onCreate()方法开始执行。(当有多个activity文件时,执行Manifest文件中指定的主activity文件)。htm
当执行完onCreate()方法后,迅速调用onStart(),onResume()方法,用户就能够进行相关的操做.对象
在onCreate()方法中尽可能少执行操做,防止程序运行好久都进入不了界面。blog
三:Resumed->Paused && Paused->Resumed生命周期
当启动另外一个activity形成部分阻塞时(主activity部分可见),主activity调用onPause()方法进入Paused状态。当你须要从新回到主activity时,会经过调用onResume()方法回到屏幕并可执行相关操做。内存
一个activity进入Paused状态后,他有可能回到屏幕,也有可能进入Stopped状态,而后进入Destryed状态关闭。资源
当activity进入Paused状态后,应该在onPause()方法中中止Pause状态activity的操做,释放相应的资源,以及用户期待保存的资源。it
当activity从新回到Resumed状态时,应该初始化那些在Paused状态中释放的资源sed
四:Paused->Stopped && Stopped->started
当activity由部分阻塞变成彻底阻塞(activity不可见)后,主activity调用onStop()进入Stopped状态。当你从新回到主activity时,会调用onRestart()方法.而后迅速调用onResume()方法.
当activity进入stopped状态时,Activity对象会保存在内存中,当这个activty恢复到resumed状态时,会调用保存的activity。因此不须要初始化相应的组件。
在onstop()方法中要释放不须要的资源,而在onRestart()方法中要从新建立释放的资源。
五:destroyed:
1个activity多是正常退出(好比点击返回按钮/使用finish()方法退出),也有可能非正常退出(stop状态长时间不被使用/前台activity须要更多资源)。
在正常退出时,不会保存相关数据,但非正常退出时会保存相关数据并在下一次建立Activity实例时恢复数据。
被系统用来恢复相关数据而保存的数据叫作instance state。instance state保存在bundle对象中的key-value pairs中。
在activity非正常退出时,会经过onSaveInstanceState() 保存相关的数据到对象Bundle中。在从新建立此activity时,会将bundle对象传递给onCreate() 与 onRestoreInstanceState()。经过bundle对象来恢复数据。
参考资料:http://hukai.me/android-training-course-in-chinese/basics/activity-lifecycle/index.html.