• Android 4学习(5):概述


    参考:《Professional Android 4 Application Development

    Android应用程序生命周期

    Android应用程序无法控制自己的生命周期,因此它必须在自己的生命周期状态发生变化时作出相应的反应。


    Android应用程序的优先级和它进程的状态

    进程的重要性取决于它host的应用程序,应用程序的优先级等于程序中优先级最高的组成部分。(The order in which processes are killed to reclaim resources is determined by the priority of their hosted applications. An application’s priority is equal to that of its highest-priority component.

    如果两个应用程序的优先级一样,运行时间最长的程序会先被杀掉。进程的优先级同时还决定于相互依赖关系,如果程序A依赖于程序B中的ServiceContent Provider,那么程序B的优先级不会低于程序A


    从上面的Android Process优先级树可以看出,分清程序的状态和优先级,并对其作出适当的处理,是很重要的。

    • Active ProcessActive(foreground) process会直接响应用户的操作,具有最高的优先级,包括下面几种:

      • 处于active stateActivities

      • 正在执行onReceive方法的Broadcast Receivers

      • 正在执行onStart, onCreateonDestroy方法的Service

      • 标记为前台运行(foreground)的Service

    • Visible Process:顾名思义,这是指可以看见(visible),但不在前台(foreground)运行的程序。当一个Activity部分被遮住时,它就成了Visible Process。例如程序运行时收到短信,有些短信会部分遮挡应用程序。

    • Started Service Process:顾名思义,包含运行状态ServiceProcess

    • Background ProcessProcess中所hostActivity既不visible,又没有任何运行中的service,使用last-seen-first-killed模式进行管理。

    • Empty Process:在资源不紧张时,Android会将运行结束的程序放在内存中,从而可以更快地启动这些程序。这种已经死亡但仍在内存中的Process,就是Empty Process


    Android Application类简介

    Application类具有这几个职责:

    1. 响应系统发出的Application级别的广播,例如low memory等。

    2. 在系统的不同组件之间传递对象。

    3. 管理多个组件共享的资源。

    为了更好地第2,3条所要求的功能,Application类使用了单例模式。


    重载Application类的生命周期事件方法

    • onCreate:重载此方法可以对Application的单例进行修改。

    • onlowMemory:重载此方法来清除缓存或释放其他资源。

    • onTrimMemory:往往发生在程序状态转为background时。

    • onConfigurationChanged:Application在配置文件发生变化时不会自动重启,所以可以在这个方法里响应配置修改事件。


  • 相关阅读:
    Python Scrapy 爬虫入门
    Python Requests 高级用法
    Python Requests库快速入门
    linux 高并发事件触发处理 — epoll
    初识Python爬妹子图片
    android 使用gradle实现资源自动拷贝
    Android Studio Cmake使用 (附带demo)
    JNI 学习笔记
    Cmake 常见命令说明
    mybatis逆向工程生成代码
  • 原文地址:https://www.cnblogs.com/jubincn/p/3381082.html
Copyright © 2020-2023  润新知