我在应用程序中,突然按了back或者home按钮,当前应用程序关闭了么? android 5个进程等级 1) Foreground Process 正处于activity Resume状态 正处于与Bound服务交互的状态 正处于服务在前台运行的状态(startForeground()被调用) Service 声明周期函数正在被执行(onCreate(), onStart(), onDestory()) BroadcastReceiver 正在执行onReceive()方法 杀死Foreground Process需要用户相应,因为这个安全等级最高2) Visible Process 当前进程不是焦点进程,Activity 不在前段显示,但也没有完全隐藏,能够看得见 比如弹出一个对话框 3) Started Service Process 正在运行的,不在上述两种状态的service
是由 startService() 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东 西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。4) Background Process 不可见状态的activity进程,onstop被调用 包含目前不为用户所见的activity(Activity对象的 onStop() 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程 运行,所以它们一般存放于一个LRU(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周 期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。
5) Empty Process 没有运行任何component的进程,保留这个进程主要是为了缓存的需要 , 不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。
此外,一个进程的级别可能会由于其它进程依赖于它而升高。一个为其它进程提供 服务的进程级别永远高于使用它服务的进程。比如说,如果A进程中的内容提供者为进程B中的客户端提供服务,或进程A中的服务为进程B中的组件所绑定,则A 进程最低也会被视为与进程B拥有同样的重要性。android 进程5个等级的区别? android 进程5个等级的优先级? |
|
来自: Joselyn_cui > 《android》