Android-进程生命周期
按照优先级排列如下:
1 活动进程:Active Process
存在时期
正处于Activity Resume()[Activity重启]状态
正处于与bound服务交互的状态
正处于服务在前台运行的状态(setForeground()被调用, 该函数将创建指定窗口的线程设置到前台,并且激活该窗口)
Service生命周期函数正在被执行(onCreate(), onStrat(), onDestory())
Broadcast Receiver正在执行onReceiver()方法
杀死Foreground Process需要用户相应,因为这个安全优先级最高
安全优先级最高,不会轻易被杀死
2 可见进程:Visble Process
当前进程不是焦点进程,Activity不在前端显示
但也没有完全隐藏,能够看得见,比如弹出一个对话框
3 服务进程:Started Service Process
正在运行的,不在上述两种状态的Service
4 后台进程:Backgroud Process
不可见状态的Activity进程,又没有任何相关Service运行(onStop()被调用),系统有个后台
进程列表,一般情况采取后进先出(队列)的原则释放后台进程资源
5 空进程:Empty Process
没有运行任何Components的进程,保留这个进程主要是为了缓存的需要,例如下次启动这个进程可以更加快速
二 Android app的启动和消亡过程
启动
由PackageManage(依赖PackageManageService,还与manifest文件有关系)开始->start主Activity->主Activity不存在->向zygote系统守护进程
实例化一个虚拟机进程->装载dex文件
退出
自动释放
内核->dirvers(驱动)->misc->LowMemoryKiller.c文件(实现机制)软驱动
finish();
System.exit(0);暴力退出
Process.killProcess(Process.myPid());暴力退出
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。