Android 4学习(5):概述 - Android应用程序的生命周期

本文介绍了Android应用程序的生命周期,重点讨论了不同进程状态的优先级,如Active Process、Visible Process、Started Service Process、Background Process和Empty Process。此外,还详细讲解了Application类的角色,包括响应系统广播、组件间对象传递和资源管理,并提到了如何重载Application的生命周期方法以应对内存不足和配置变化等情况。
摘要由CSDN通过智能技术生成

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值