Activity基础知识

Activity是什么?

通俗点说Activity就是能与用户进行交互的界面,如点击、长按、上拉下滑等等。

Activity的4中状态

  1. running:运行状态,位于前台可与用户进行交互
  2. paused:暂停状态,可见但不可与用户进行交互
  3. stopped:停止状态,位于后台不可见
  4. killed:被杀死状态,被回收

Activity的生命周期

下面是官网的一张图,有个大致的映像即可。


Activity基础知识_第1张图片
060009291302389.png

主要说下面的几种情况:

  1. Activity启动

onCreate()->onStart()->onResume()

  1. 用户按下HOME键

onPause()->onStop()

  1. 重新打开之前的Activity

onRestart()->onStart()->onResume()

  1. 正常退出当前Activity

onPause()->onStop()->onDestroy()

Android进程的优先级

我们都知道在内存不足的时候系统会回收优先级低的进程。
前台->可见->服务->后台->空

  1. 前台:用户看得见并且可以交互
  2. 可见:用户看到见但不可交互,举个简单的例子就是有个透明的Activity覆盖住了之前的Activity,那么之前的Activity就从前台转到了后台
  3. 服务:就是在后台一直运行的services
  4. 后台:与服务不同的是后台是由前台转换过来的,按下home键后之前的Activity就处于后台了
  5. 空:优先级最低,不属于以上的类型,Android系统可随时杀掉该进程

Android的任务栈

在Android中,Activity是存在于任务栈中,任务栈是一种栈结构,存放Activity的集合,如下图所示,是一种先进后出的结构。


Activity基础知识_第2张图片
614265-20150829140521390-780924078.jpg

Activity在一定情况下可以单独占用一个任务栈,这里涉及到Activity的启动模式(后面再说)。

Activity的启动模式

Activity的启动模式一共分为4种

  1. standard:默认的是这个模式,每次创建一个Activity时都会新建一个实例,它不管任务栈中是否存在该实例,这样模式会消耗比较大的内存。
  2. singleTop:又叫做栈顶复用模式,每次创建一个新的Activity时都会在任务栈顶查看是否有该实例,如果有则复用,没有才创建。
  3. singleTask:该模式会一直复用任务栈中Activity实例,需要注意的是它会清除它之上的Activity从而是自己到达栈顶,用的比较多的地方就是一个应用的主页。
  4. singleInstance:该模式下创建Activity时会为这个Activity单独创建一个任务栈,用的比较多的一个场景是消息推送,用户点击通知栏上的消息进入到一个Activity中,当用户按下返回键时会之间退出这个应用,而不是进入到这个应用中,因为这个任务栈中只有这个Activity。

你可能感兴趣的:(Activity基础知识)