Android的5个进程等级(Process Levels)

1) Foreground Process
正处于Activity Resume() 状态

正处于与bound服务交互的状态

正处于服务在前台运行的状态 , (startForeground() 被调用)

Service生命周期函数正在被执行 ( onCreate() , onStart() , onDestroy())

BroadcastReceiver 正在执行onReceive()方法

杀死Foreground Process 需要用户响应-因为这个安全优先级是最高的

2) Visible Process
Activity 不在前端显示 , 但也没有完全隐藏,能够看得见,比如弹出一个对话框 。(Input Method)
一个bound到visible 或者 foreground 的activity的 Service

3) Service Process
正在运行的,不在上述两种状态的Service
4) Background Process
不可见状态的Activity进程,(onStop()被调用)
5) Empty Process
没有运行任何Components的进程,保留这个进程主要是为了缓存的需要


具体的应用:
1.不希望系统关掉sevice中断服务方法 :
如音乐sevice 启动sevice时调用startForeground()前台启动,不会被系统关掉,音乐会继续播放,除非通过人机交互手动确认关掉.

2.空进程是为了做缓存,内存里记录一些值,下次打开快。


3.如果又有Service又有Visible Activity怎么办?

if a process hosts a service and a visible activity, the process is ranked as a visible process, not a service process.
当进程既有Service 并且 有Visible Activity的时候,进程会被认为是Visible 进程 。
得出结论:优先级高的为准。

更多相关文章

  1. Android(安卓)8.1隐藏状态栏图标
  2. android与j2me移植之clipRect
  3. 极光推送(守护进程)
  4. 拖动条SeekBar的简单使用
  5. Android(安卓)Binder机制(三) ServiceManager守护进程
  6. Android(安卓)Fingerprint中的IPC(Binder)
  7. AIDL跨进程通信的使用
  8. 禁止android进去休眠状态
  9. Android(安卓)P 以及之后版本不支持同时从多个进程使用具有相同

随机推荐

  1. Android资源文件命名规则
  2. android方法数超过64k和Gradle编译OOM解
  3. android launchmode疑问?
  4. 深入理解Android消息处理系统
  5. Android(安卓)ANR发生原因总结
  6. UI组件:日历视图(CalendarView)
  7. android binder 进程间通信机制4-Service
  8. popupwindow的一些注意事项
  9. Android(安卓)特殊符号的转码大全
  10. Android(安卓)类代码防止反编译的办法