码迷,mamicode.com
首页 > 移动开发 > 详细

android开发学习笔记(二)-activity的生命周期

时间:2014-10-22 23:28:42      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:des   android   blog   http   ar   使用   sp   文件   数据   

一:activity的生命周期:

bubuko.com,布布扣

二:created->resumed

当一个应用程序的启动图标被用户点击后,应用程序开始从Activity的onCreate()方法开始执行。(当有多个activity文件时,执行Manifest文件中指定的主activity文件)。

当执行完onCreate()方法后,迅速调用onStart(),onResume()方法,用户就可以进行相关的操作.

在onCreate()方法中尽量少执行操作,防止程序运行很久都进入不了界面。

三:Resumed->Paused && Paused->Resumed

当启动另一个activity造成部分阻塞时(主activity部分可见),主activity调用onPause()方法进入Paused状态。当你需要重新回到主activity时,会通过调用onResume()方法回到屏幕并可执行相关操作。

一个activity进入Paused状态后,他有可能回到屏幕,也有可能进入Stopped状态,然后进入Destryed状态关闭。

当activity进入Paused状态后,应该在onPause()方法中停止Pause状态activity的操作,释放相应的资源,以及用户期待保存的资源。

当activity重新回到Resumed状态时,应该初始化那些在Paused状态中释放的资源

 

四: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.

 

android开发学习笔记(二)-activity的生命周期

标签:des   android   blog   http   ar   使用   sp   文件   数据   

原文地址:http://www.cnblogs.com/shangshicc/p/4044397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!