Android中activity的生命周期详解

生命周期

周期即活动从开始到结束所经历的各类状态。生命周期即活动从开始到结束所经历的各个状态。从一个状态到另外一个状态的转变,从无到有再到无,这样一个过程当中所经历的状态就叫作生命周期。异步

Acitivity的四种状态

  1. 运行:若是一个活动被移到了前台(活动栈顶部)。
  2. 暂停:若是一个活动被另外一个非全屏的活动所覆盖(好比一个Dialog),那么该活动就失去了焦点,它将会暂停(但它仍然保留全部的状态和成员信息,而且仍然是依附在WindowsManager上),在系统内存积极缺少的时候会将它杀死。
  3. 中止:若是一个活动被另外一个全屏活动彻底覆盖,那么该活动处于中止状态(状态和成员信息会保留,可是Activity已经再也不依附于WindowManager了)。同时,在系统缺少资源的时候会将它杀死(它会比暂停状态的活动先杀死)。
  4. 重启:若是一个活动在处于中止或者暂停的状态下,系统内存缺少时会将其结束(finish)或者杀死(kill)。这种非正常状况下,系统在杀死或者结束以前会调用onSaveInstance()方法来保存信息,同时,当Activity被移动到前台时,从新启动该Activity并调用onRestoreInstance()方法加载保留的信息,以保持原有的状态。

生命周期状态说明

生命周期方法

  1. onCreate:表示Activity正在被建立,这是生命周期的第一个方法。在这个方法中能够作一些初始化的工做(加载布局资源、初始化Activity所须要的数据等),耗时的工做在异步线程上完成。布局

  2. onRestart:表示Activity正在从新启动。通常状况下,在当前Activity从不可见从新变为可见的状态时onRestart就会被调用。这种情形通常是因为用户的行为所致使的,好比用户按下Home键切换到桌面或者打开了一个新的Activity(这时当前Activity会暂停,也就是onPause和onStop被执行),接着用户有回到了这个Activity,就会出现这种状况。动画

  3. onStart:表示Activity正在被启动,而且即将开始。可是这个时候要注意它与onResume的区别。二者都表示Activity可见,可是onStart时Activity还正在加载其余内容,正在向咱们展现,用户还没法看到,即没法交互。.net

  4. onResume:表示Activity已经建立完成,而且能够开始活动了,这个时候用户已经能够看到界面了,而且即将与用户交互(完成该周期以后即可以响应用户的交互事件了)。线程

  5. onPause:表示Activity正在暂停,正常状况下,onStop接着就会被调用。通常来讲,在这个生命周期状态下,能够作一些存储数据、中止动画的工做,可是不能太耗时,若是是因为启动新的Activity而唤醒的该状态,那会影响到新Activity的显示,缘由是onPause必须执行完,新的Activity的onResume才会执行。cdn

  6. onStop:表示Activity即将中止,能够作一些稍微重量级的回收工做,一样也不能太耗时(能够比onPause稍微好一点)。blog

  7. onDestroy:表示Activity即将被销毁,这是Activity生命周期的最后一个回调,咱们能够作一些回收工做和最终的资源释放(如Service、BroadReceiver、Map等)。生命周期

  • 一个正常的Activity生命周期执行方法:(建立)onCreate ==> onStart ==> onResume ==>(销毁)onPause ==> onStop ==> onDestroy
  • 关电源: onPause ==> onStop
  • 从新开电源键:onRestart ==> onStart ==> onResume
  • 点击home键:onPause ==> onStop
  • 点击返回键:onPause ==> onStop ==> onDestroy
  • ActivityA跳转到ActivityB:ActivityA onPause ==> ActivityB onCreate ==> ActivityB onStart ==> ActivityB onResume ==> ActivityA onStop
  • ActivityB返回ActivityA: ActivityB onPause ==> ActivityA onRestart ==> ActivityA onStart ==> ActivityA onResume ==> ActivityB onStop ==> ActivityB onDestroy

常见的就这几种方式了,横屏的暂时没有使用过没有研究,固然也不排除一些异常状况。参考blog.csdn.net/woshimaling…,上面文字说明基本copy,主要用于复习。事件

相关文章
相关标签/搜索