Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1133800
  • 博文数量: 141
  • 博客积分: 2853
  • 博客等级: 少校
  • 技术积分: 2266
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-04 12:03
文章分类

全部博文(141)

文章存档

2014年(3)

2013年(12)

2012年(126)

分类: 嵌入式

2012-10-09 09:42:59

摘自

Activity的生命周期简介

1、Activity有三种状态:

 

  • 激活或者运行状态,运行在前台(在当前Activity栈的栈顶)。
  • 暂停状态,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。
  • 停止状态,被其他Activity覆盖,需要注意的是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。

2、操纵生命周期的七种方法:

 

方法描述是否可被杀死下一个操作
onCreate()初始化,创建views,绑定list的数据等等onStart()
onRestart()在Activity被停止后调用onStart()
onStart()在Activity被用户可见之前调用onResume() 或者 onStop()
onResume()在Activity和用户交互之前调用(快速,持久化)onPause()
onPause()在系统要激活另一个Activity时调用(快速)onResume() 或者 onStop()
onStop()在Activity不再可见时调用onRestart() 或者 onDestroy()
onDestroy()在Activity被销毁时调用

3、Activity的运作流程

  • 一般启动Activity:onCreate -> onStart -> onResume
  • 呼叫另一个Activity: onPause -> onCreate -> onStart -> onResume -> onStop
  • 还原Activity: onPause -> onRestart -> onStart -> onResume -> onStop -> onDestroy
  • 退出Activity: onPause -> onStop -> onDestroy
  • 回收再启动Activity: onCreate -> onStart -> onResume

4、作者经验

  • 许多人尤其是初学者都认为Activity的生命周期并不重要,只要onCreate了就ok,实际则不然,当你需要在多个Activity之间切换的时候生命周期的作用就展现了出来,尤其是在Activity之间进行数据传递或者对数据库操作的时候。
  • onResume和onRestart的作用有些相似,很多人对此感到困惑或 者难以区分。不过由上面的Activity的运作流程可以看出每一个流程中几乎都存在onResume,而且是在onStart之后,所以有时候将一些必 要的操作放在onResume中比放在onRestart中要好。
阅读(1506) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~