Android进程生命周期进阶(一)

  1. 前台 Activity 至关重要: 处于屏幕最前方并与用户交互的 Activity 拥有最高优先级。即使内存资源紧张,系统也会竭尽全力保留这类 Activity 的进程,仅在迫不得已时才会将其终止。通常情况下,设备此时已进入内存分页状态,因为系统需要确保用户界面的流畅交互。

  2. 可见 Activity 同样重要: 用户可见但并非处于最前端的 Activity,例如被对话框部分遮挡的界面,也拥有较高优先级。系统通常不会终止这类 Activity 的进程,除非为了保障前台 Activity 的运行不得不为之。

  3. 后台 Activity 可被回收: 对用户不可见的已暂停 Activity 优先级较低,系统可以安全地终止其进程以释放内存资源,供前台或可见 Activity 使用。当用户通过“返回”操作重新访问这类 Activity 时,系统会调用其 onCreate(Bundle) 方法,并利用之前 onSaveInstanceState(Bundle) 方法保存的状态信息进行恢复,确保 Activity 以之前的状态重新启动。

  4. 空进程应避免: 不包含任何 Activity、Service 或 IntentReceiver 等组件的进程被称为空进程,这类进程在系统内存不足时会被迅速清除。因此,任何需要在 Activity 之外执行的后台操作都应该置于 Service 或 IntentReceiver 中,以确保进程能够持续运行。