本节学习进程的生命周期:

Android系统是尽可能的去保护每一个进程,但是最终需要为新的进程,或者很重要的进程释放以前的老进程。为了决定那个进程被保护,那个被杀死。Android系统根据当前进程中组件的状态,以及运行在进行中的组件决定保留那个,杀死那个进程。当然了系统资源短缺时,进程等级低的先杀死,以此类推。

android系统中有五种进程等级:

1: 前台进程(前台进程有五种状态,只有其中一种满足就是前台进程,前台进程是很难被杀死的)

a:拥有一个正在与用户交互的Activity(此时Activity的OnResume方法被调用)的进程

b:拥有一个服务,此服务绑定一个与用户正在交互的Activity

c:拥有一个“正在运行于前台”的服务,也就是服务的startForeground被调用

d:拥有一个服务,此服务正在执行服务生命周期函数中的一个(onCreate(), onStart(), or onDestroy())

e:拥有一个广播接受者,此广播接受者正在执行onReceiver方法

2:可见进程(可见进程有两种状态,只要其中一种满足就是前台进程)

a:拥有一个Activity,但是此Activity不在前台,但是用户能看到此Activity的进程(Activity的onPause方法调用)

b:拥有一个服务,此服务绑定了一个前台或者可见的Activity

3:服务进程

拥有一个通过StartServer启动的服务的进程

虽然服务用户是看不见的,但是服务进程却可以干一些很重要的事情(比如在后台播放音乐,下载东西),服务进程一般是不可能杀死的。除非系统资源不够,会杀死服务进程。但是当系统资源充足时,系统会自动启动被杀死的服务进程。

4:后台进程:

拥有一个用户看不见的Activity的进程,此时Activity的onStop方法被调用

5: 空进程:

没有任何活动的应用组件的进程

空进程很容易被杀死的。

Android 进程的五种生命周期学习相关推荐

  1. 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生

    线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...

  2. android应用开发(25)---进程和应用程序生命周期

    进程和应用程序生命周期 在大多数情况下,每个Android应用程序都在其自己的Linux进程中运行.当需要运行某些代码时,会为应用程序创建此进程,并且该进程将保持运行状态,直到不再需要它为止,并且 系 ...

  3. 页面生命周期_微信小程序的生命周期学习笔记-应用篇

    在我们学习微信小程序的过程当中,我们会参考很多资料.在这些资料中,我们经常能够看到"生命周期"四个字,在前面的课程中也提到过.在这里做一个说明. 生命周期是一类函数的统称,这些函数 ...

  4. Android-服务Service(2)-bind绑定Service及两种生命周期

    上篇是第一种方法,这里主要是第二种Context.bindService()方法 1. 开发步骤 1. 绑定服务 Intent intent=new Intent(getBaseContext(),M ...

  5. uni-app三种生命周期及页面跳转方法

    uni-app三种生命周期 应用生命周期 应用生命周期函数: onLaunch:当uni-app初始化完成时触发(全局只触发一次) onShow:当uni-app启动,或从后台进入前台显示 onHid ...

  6. 【Android】Service启动、生命周期

    service启动流程 startService方式 每个App进程中至少会有两个binder线程 ApplicationThread(简称AT)和ActivityManagerProxy(简称AMP ...

  7. Page 的生命周期学习小结

    (以前我在 csdn 写的翻译文章,现在转到这里来.) Page 的生命周期学习小结 原文链接:Page Events: Order and PostBack 作者:Paul Wilson 翻译:木野 ...

  8. React Native之组件(Component)生命周期学习笔记

    1.Component介绍 一般Component需要被其它类进行继承,Component和Android一样,也有生命周期 英文图片如下 2   具体说明 1).挂载阶段 constructor() ...

  9. 小程序的三种生命周期

    小程序有3种生命周期 分别是:全局级别,页面级别.组件级别 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面,通过Component()来注册一个组件. 1.全局生命周期 ...

  10. 进程的五种基本状态VS活动就绪静止就绪活动阻塞静止阻塞

    进程的五种基本状态 1 创建状态: 进程正在被创建 2 就绪状态: 进程被加入到就绪队列中等待CPU调度 3 执行状态: 进程正在被运行 4 等待阻塞状态: 进程因为某种原因,比如等待I/O,等待设备 ...

最新文章

  1. Windows HTML本地快速渲染轨迹线
  2. Line上半年扭亏为盈 用户及营收遇瓶颈
  3. Android短信发送流程之长短信发送(原)
  4. P1447 [NOI2010] 能量采集
  5. Abiword页面布局
  6. kotlin 覆盖属性_Kotlin程序| 方法覆盖的示例
  7. 美团科技 Java工程师_美团Java工程师面试题(2018秋招)
  8. 阿里云+wordpress搭建个人网站及博客
  9. QQ版本更新 除了一起听歌现在还能一起看球赛了
  10. 备忘录AIX主机下用SHELL脚本编写FTP传某个目录下的文件到LINUX主机
  11. 追求--MarsCoara
  12. (原)logstash-forwarder + logstash + elasticsearch + kibana
  13. 卡巴斯基2014/10.0 KEY文件下载 - KES 10.0下载
  14. C++二维vector初始化大小方法
  15. 单例模式的懒汉模式跟恶汉模式的区别
  16. NPS - 数字化营销 - 净推荐值
  17. 漫画:什么是 B+ 树?
  18. 给hexo搭建的博客更换主题
  19. 光敏电阻规格型号的含义解读研究总结
  20. 艾美捷测序级 II,纯化胰蛋白酶化验程序文献参考

热门文章

  1. oracle更改用户名的问题
  2. 23andme、gsa、wegene各染色体位点统计
  3. 2013年阿里巴巴实习生笔试题
  4. 在Microsoft Workflow Foundation中晃荡了两天
  5. java 如何将异常_java中的异常处理
  6. Spark性能优化指南——高级篇【2】
  7. Listen 0.0.0.0:80 Listen [::0]:80
  8. 推荐系统在房产领域的实践
  9. BZOJ1861:[ZJOI2006]书架——题解
  10. 安防的未来五年 如何把握机遇深耕市场?