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在配置文件发生变化时不会自动重启,所以可以在这个方法里响应配置修改事件。


原文地址:https://www.cnblogs.com/jubincn/p/3381082.html