Android进程管理

时间:2023-11-23 20:10:56

1、进程按照优先级分为不同的等级FVSBE

  1. Foreground process前台进程:用户可看到进程里某个activity界面(可以获得焦点的)
  2. Visible process可见进程:用户仍可见到这个进程,但不能操作
  3. Service process服务进程:若一个进程有一服务在后台运行
  4. Background process后台进程:一个activity现在不可见了,但在后台运行
  5. Empty process空进程:没有任何活动组件存在的进程

内存不足会依次关掉5/4/3,待内存有余时会复开3

2、重要优先级:前台进程 > 可视进程 > 服务进程 > 后台进程 > 空进程

Android系统会尽可能的保持应用程序的进程一致存在,即使在应用退出了之后也仍然这样...但是如果发现内存不够用了,要去启动新的进程时,那么会按照进程的优先级顺序去杀死某些老的进程

3、进程置前情况

与用户当前正在做的事情密切相关,不同的应用程序组件能够通过不同的方法使它的宿主进程移到前台,当下面任何一个条件满足时,可以考虑将进程移到前台:

  1. 进程正在运行一个与用户交互的Activity,它的onResume()方法被调用
  2. 进程有一个Service,该Service对应的Activity正在与用户交互
  3. 进程有一个Service被调用startForeground()方法,要求到前台来执行
  4. 进程有一个Service,并且在Service的某个回调函数(onCreate()、onStart()、或onDestroy())内有正在执行的代码
  5. 进程有一个正在运行的BroadcastReceiver,它的onReceive()方法正在执行

http://developer.android.com/guide/components/processes-and-threads.html