进程生命周期(Process Lifecycle)
进程5个等级优先级别。
理解性记忆。转换关系。
apple iOS基于Unix。
linux和Unix,进程的销毁是系统管理的。
1 foreground(前台/端的,优先级最高,最重要)
正处于Activity Resume()状态
整处于bound服务交互的状态(activity和service正在交互)
正处于服务在前台运行的状态,startForeground()被调用。(资源不够,想关闭服务时,需要手动确认,不会直接关闭后台服务)
Service生命周期函数正在被执行,onCreate(),onStart(),onDestroy()
BroadcastReceiver正在执行onReceive()方法(正在接收系统消息)
杀死Foreground Process需要用户响应-因为这个安全优先级是最高的
2 visible
Activity不在前端显示,但也没有完全隐藏,能够看得见,比如弹出一个对话框,Input Method
一个bound到visible或者foreground的activity的service
(如输入法,半透明对话框出现时)
3 service
正在运行的,不在上述两种状态的service
(如较长时间的运算)
4 background
不可见状态的activity进程,onStop()被调用
5 empty
没有运行任何的components的进程,保留这个进程主要是为了缓存的需要。
(输入内容被存在缓存,通过空进程恢复数据)
一个service(可能)是被两种不同优先级进程启动的,优先考虑优先级较高的,认为这个进程是更高优先级的。
eg,demo,演示foreground和background
package manager 类 负责将manifest中的配置转换成类的实例?
android如何启动:package service远程服务,package manager加载manifest,找到launcher