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)

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

  • 相关阅读:
    横竖屏切换
    org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: unknown encoding
    @Value() 使用方法
    调用第三方超时处理
    spring 配置注解定时器quartz01
    tomcat:PermGen space
    06-图3 六度空间 (30分)
    06-图2 Saving James Bond
    06-图1 列出连通集 (25分)
    05-树9 Huffman Codes (30分)
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/7994925.html
Copyright © 2011-2022 走看看