美文网首页
服务及其生命周期

服务及其生命周期

作者: Dream_Book | 来源:发表于2020-04-08 10:30 被阅读0次

文章仅做个人笔记使用:

按重要性分:

  • 前台进程:
    1. 它正在用户的互动屏幕上运行一个Activity其 onResume()方法已被调用。
    2. 它有一个BroadcastReceiver目前正在运行其BroadcastReceiver.onReceive()方法正在执行。
    3. 它有一个Service目前正在执行其某个回调Service.onCreate()、Service.onStart() 或Service.onDestroy()中的代码。
  • 可见进程:正在进行用户当前知晓的任务,因此终止该进程会对用户体验造成明显的负面影响。
    1. 它正在运行的Activity在屏幕上对用户可见,但不在前台其 onPause()。举例来说,如果前台 Activity 显示为一个对话框,而这个对话框允许在其后面看到上一个 Activity,则可能会出现这种情况。
    2. 它有一个Service正在通过Service.startForeground()要求系统将该服务视为用户知晓或基本上对用户可见的服务作为前台服务运行。
    3. 系统正在使用其托管的服务实现用户知晓的特定功能,例如动态壁纸、输入法服务等。
  • 服务进程:
    1. 包含一个已使用startService()方法启动的Service。虽然用户无法直接看到这些进程,但它们通常正在执行用户关心的任务(例如后台网络数据上传或下载),因此系统会始终使此类进程保持运行,除非没有足够的内存来保留所有前台和可见进程。
    2. 已经运行了很长时间(例如 30 分钟或更长时间)的服务的重要性可能会降位,以使其进程降至下文所述的缓存 LRU 列表。这有助于避免超长时间运行的服务因内存泄露或其他问题占用大量内存,进而妨碍系统有效利用缓存进程。
  • 缓存进程:
    1. 目前不需要的进程,因此,如果其他地方需要内存,系统可以根据需要自由地终止该进程。在正常运行的系统中,这些是内存管理中涉及的唯一进程:运行良好的系统将始终有多个缓存进程可用(为了更高效地切换应用),并根据需要定期终止最早的进程。只有在非常危急(且具有不良影响)的情况下,系统中的所有缓存进程才会被终止,此时系统必须开始终止服务进程。

    2. 这些进程通常包含用户当前不可见的一个或多个Activity实例(onStop()方法已被调用并返回)。只要它们正确实现其 Activity,那么当系统终止此类流程时,就不会影响用户返回该应用时的体验,因为当关联的 Activity 在新的进程中重新创建时,它可以恢复之前保存的状态。

    3. 这些进程保存在伪 LRU 列表中,列表中的最后一个进程是为了回收内存而终止的第一个进程。它通常会先尝试保留更多有用的进程(比如托管用户的主屏幕应用、用户最后看到的 Activity 的进程等),再保留其他类型的进程。还可以针对终止进程应用其他政策:比如对允许的进程数量的硬限制,对进程可持续保持缓存状态的时间长短的限制等。

进程的优先级也可能因从属于进程的其他依赖项而提升。例如,如果进程 A 已通过Context.BIND_AUTO_CREATE标记绑定到Service,或在使用进程 B 中的ContentProvider,则进程 B 的分类始终至少和进程 A 一样重要。

相关文章

  • 服务及其生命周期

    文章仅做个人笔记使用: 按重要性分: 前台进程:它正在用户的互动屏幕上运行一个Activity其 onResume...

  • Maven 生命周期和插件详解

    Maven 生命周期及其阶段 Maven 基于生命周期的核心概念。有三个内置的生命周期: clean:负责清理项目...

  • (一)Service

    【1-1】Service启动方式,及其生命周期,及其区别? 两种启动方式:startService/bindSer...

  • 第1期:Activity的生命周期

    Activity的生命周期 Activity常见知识点 1. 介绍下Activity的各个生命周期及其作用? on...

  • angular 学习记录(七)

    一、生命周期钩子 当 Angular 实例化组件类并渲染组件视图及其子视图时,组件实例的生命周期就开始了。生命周期...

  • IAP 订阅服务的生命周期和最佳实践

    IAP 订阅服务的生命周期和最佳实践IAP 订阅服务的生命周期和最佳实践

  • android services 生命周期简析

    服务的生命周期跟Activity的生命周期类似 但是生命周期可能有些特殊 可能比你关注服务如何创建和销毁更重要,因...

  • servlet生命周期及实现原理

    Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 Servlet生命周期分为...

  • 初识MyBatis

    本文目标 掌握MyBatis基础组件及其使用、MyBatis的使用方法 掌握基础组件的生命周期及其实现方法 掌握入...

  • Servlet 工作原理

    Servlet 生命周期 Servlet 生命周期:Servlet加载--->实例化--->服务--->销毁。 i...

网友评论

      本文标题:服务及其生命周期

      本文链接:https://www.haomeiwen.com/subject/beszphtx.html