1、进程按照优先级分为不同的等级FVSBE
- Foreground process前台进程:用户可看到进程里某个activity界面(可以获得焦点的)
- Visible process可见进程:用户仍可见到这个进程,但不能操作
- Service process服务进程:若一个进程有一服务在后台运行
- Background process后台进程:一个activity现在不可见了,但在后台运行
- Empty process空进程:没有任何活动组件存在的进程
内存不足会依次关掉5/4/3,待内存有余时会复开3
2、重要优先级:前台进程 > 可视进程 > 服务进程 > 后台进程 > 空进程
Android系统会尽可能的保持应用程序的进程一致存在,即使在应用退出了之后也仍然这样...但是如果发现内存不够用了,要去启动新的进程时,那么会按照进程的优先级顺序去杀死某些老的进程
3、进程置前情况
与用户当前正在做的事情密切相关,不同的应用程序组件能够通过不同的方法使它的宿主进程移到前台,当下面任何一个条件满足时,可以考虑将进程移到前台:
- 进程正在运行一个与用户交互的Activity,它的onResume()方法被调用
- 进程有一个Service,该Service对应的Activity正在与用户交互
- 进程有一个Service被调用startForeground()方法,要求到前台来执行
- 进程有一个Service,并且在Service的某个回调函数(onCreate()、onStart()、或onDestroy())内有正在执行的代码
- 进程有一个正在运行的BroadcastReceiver,它的onReceive()方法正在执行
http://developer.android.com/guide/components/processes-and-threads.html