Activity生命周期前传-Android 中的进程模式
何谓进程模式?
Android 平台的App,通常情况下都是单进程。
由于Android平台资源有限,需要为不同进程设置优先级,以便系统资源紧张的情况下,将优先级较低的进程杀死,以释放资源。
因而,进程模式的存在就是为了标记和区分进程的优先级
存在哪几种进程模式?
按优先级从高到低,进程模式主要包括:
前景进程、可见进程、服务进程、背景进程、空白进程这5大类别
通常,App 进程的级别,由其活跃的或处于栈顶的组件的活动状况(比如所处生命周期)决定。
1、前台进程是用于目前操作所需的进程。在不同的情况下,进程可能因为其所包含的各种应用组件而被视为前台进程。如果以下任一条件成立,就是前台进程:
- 它在屏幕上运行了一个Activity(已调用 onResume())
- 它有一个BroadcastReceiver 正在运行(BroadcastReceiver.onReceive()在执行)
- 它有一个Service 目前正在执行某个回调的代码(Service.onCreate()、Service.onStart()或者Serviece.onDestory())
2、可见进程
- Activity 在屏幕上对用户可见,但是失去焦点,调用了(onPause()),暂时无法操作
- Service 正在通过Service.startForeground();
- 实现特定功能的系统服务:动态壁纸,输入法服务
3、服务进程包含一个已使用startService()方法启动的Service的进程。
4、背景进程
指退到后台,目前不可见的进程,比如使用app的时候,按home键
5、空白进程
当系统需要内存的时候,会暂时将背景进程清除,就成为了空白进程
参考博客:
https://xiaozhuanlan.com/topic/0213584967
https://developer.android.com/guide/components/activities/process-lifecycle
PS:我有微信读书群,有需求的私聊我