zoukankan      html  css  js  c++  java
  • 进程划分

    1.前台进程(Foreground process)

    场景:

    • 某个进程持有一个正在与用户交互的Activity并且该Activity正处于resume的状态。
    • 某个进程持有一个Service,并且该Service与用户正在交互的Activity绑定。
    • 某个进程持有一个Service,并且该Service调用startForeground()方法使之位于前台运行。
    • 某个进程持有一个Service,并且该Service正在执行它的某个生命周期回调方法,比如onCreate()、 onStart()或onDestroy()。
    • 某个进程持有一个BroadcastReceiver,并且该BroadcastReceiver正在执行其onReceive()方法。

    用户正在使用的程序,一般系统是不会杀死前台进程的,除非用户强制停止应用或者系统内存不足等极端情况会杀死。

    2.可见进程(Visible process)

    场景:

    • 拥有不在前台、但仍对用户可见的 Activity(已调用 onPause())。(当另一个个Activity设置为dialog模式时可能出现这种情况)
    • 拥有绑定到可见(或前台)Activity 的 Service
    • 拥有系统关键特性的Service,如动态壁纸、输入法等服务。

    用户正在使用,看得到,但是摸不着,没有覆盖到整个屏幕,只有屏幕的一部分可见进程不包含任何前台组件,一般系统也是不会杀死可见进程的,除非要在资源吃紧的情况下,要保持某个或多个前台进程存活

    3.服务进程(Service process)

    场景

    • 某个进程中运行着一个Service且该Service是通过startService()启动的,与用户看见的界面没有直接关联。

    在内存不足以维持所有前台进程和可见进程同时运行的情况下,服务进程会被杀死

    4.后台进程(Background process)

    这是一种对用户体验没有直接影响的进程,系统会在需要内存的时候随时回收这种进程,这种进程通常会持有一个已调用onStop方法的Activity。

    5.空进程(Empty process)

    不含任何活动应用组件的进程。保留这种进程的的唯一目的是用作缓存,以缩短下次在其中运行组件所需的启动时间。 为使总体系统资源在进程缓存和底层内核缓存之间保持平衡,系统往往会终止这些进程。

  • 相关阅读:
    JZOJ 2020.10.6 提高B组反思
    【NOIP2011模拟11.1】钓鱼
    JZOJ【NOIP2012模拟8.9】2020.10.5 T1
    ⑫linux基础命令 过滤 grep
    ⑪linux基础命令 tail
    ⑩linux基础命令 head
    ⑨linux基础命令 cat
    ⑧linux基础命令 rm
    ⑦linux基础命令 mv
    ⑥linux基础命令 cp
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/7994925.html
Copyright © 2011-2022 走看看