Android技术知识Android开发Android开发

Activity生命周期以及启动模式

2018-08-20  本文已影响18人  邢皓翔

此文章来自我的CSDN

今天要来谈一个android经典的话题,Activity生命周期以及启动模式,Activity我们应该不陌生,因为四大组件用的最多的就是它了,我们今天再好好的认识一下我们熟知的Activity。

Activity状态和生命周期

万事万物应该都有自己的生长规律,在程序中也是如此,我们应该首先来了解下Activity的生命周期。

说到生命周期,我们应该引用一张经典的图


aaa.png

嗯,没错就是大家经常见到的这幅图,通过此图可知,我们Activity分为四个状态。

Activity四种状态
  1. running 表示Activity处于活动状态,用户可以点击屏幕,屏幕可以做出相应,它是Activity 栈顶的一个状态

  2. paused 表示Activity失去焦点时,或者被一个透明的Activity放置栈顶,此时只是失去了与用户交互的能力,并不是销毁,这时候所有变量信息都还在。 但是有一种特殊情况,也就是内存资源非常紧张会被回收。

  3. stopped 出现在一种情况就是当一个Activity完全覆盖在此Activity时,被覆盖的Activity处于stopped,它不再是可见的。

  4. killed 表示Activity被系统回收掉了

Activity运转流程以及对应的生命周期
  1. onCreate Activity启动时候,会回调此方法,我们可以在里面进行各种初始化操作。

  2. onStart Activity正在启动,但是还没有在前台显示,用户还不能与之交互。

  3. onResume 此方法调用时候,用户可以与Activity进行交互。

  1. onPause 这个方法被回调时候表示整个Activity处于停止状态
  2. onStop 表示整个Activity已经停止,已经不可见。 如果内存紧张会被回收
  1. onRestart 表示Activity正在重新启动,此Activity从不可见状态变为可见状态。 (场景:返回桌面点击图标进入)
  2. onStart 与上面的一致
  3. onResume 与上面的一致
  1. onPause 与上面的一致
  2. onStop 与上面的一致
  3. onDestroy 表示当前Activity正在被销毁,可以在此方法中做一些回收工作

Android任务栈

在说启动模式之前我觉得应该插播一个任务栈的概念,这样感觉有利于理解Android启动模式

T[{{~IGZ}81]Y7{)EH}3WHV.png

在Android中,任务栈其实还是一个比较重要的概念,内部不用我多说了是一个栈结构(后进先出),用这个栈来存储我们的Activity。

注意:任务栈不是唯一的,一个Activity也可以独享一个任务栈。

我们每次在打开一个新的Activity或者退出Activity时候,都会在这个栈中添加或者删除Activity,Android系统可以通过任务栈有序的管理我们的Activity。

启动模式

上部分说的是任务栈,因为任务栈关系着启动模式,所以我们开始说说启动模式

如何使用

在我们的清单文件中使用

<application>
...
    <activity android:launchMode="启动模式">
...
</application>
四种启动模式

Activity的Flags

说完启动模式,我们要说一些与启动模式相关的Flags

这篇文章到这里就结束了,感谢大家抽出宝贵的时间来看这篇文章,如有不足,还请指出

上一篇 下一篇

猜你喜欢

热点阅读