进程优先级

Posted by OOFTF Blog on April 12, 2021

(进程的优先级)[https://developer.android.com/guide/components/activities/process-lifecycle?hl=zh-cn]

1.前台进程: 用户目前执行操作所需的进程

如果以下任一条件成立,则进程会被认为位于前台:

  • 进程持有一个正在与用户交互的 Activity 即 处于 ON_RESUME 状态
  • Service 正在执行Service.onCreate()、Service.onStart() 或 Service.onDestroy() 中的代码。
  • 进程有一个 BroadcastReceiver 正在运行 onReceive() 方法。

2.可见进程

如果以下任一条件成立,则进程会被认为位于前台:

  • 正在运行的 Activity 在屏幕上对用户可见,但不在前台(其 onPause() 方法已被调用)。举例来说,如果前台 Activity 显示为一个对话框,而这个对话框允许在其后面看到上一个 Activity。
  • 有一个 Service 通过 Service.startForeground() 作为前台服务运行。

3.服务进程

进程中运行着一个通过 startService() 开启的 Service 。

4.后台进程

  • 进程持有一个用户不可见的Activity(activity 的 onStop()已被调用),就认为进程是一个后台进程。后台进程不直接影响用户体验。

5.空进程

  • 进程不包含任何活跃的应用组件,则认为是空进程(空进程启动 Activity 属于热启动,速度更快)