Android 4学习(5):概述 - Android应用程序的生命周期
参考:《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中的Service或Content
Provider,那么程序B的优先级不会低于程序A。
从上面的Android Process优先级树可以看出,分清程序的状态和优先级,并对其作出适当的处理,是很重要的。
Active Process:Active(foreground)
process会直接响应用户的操作,具有最高的优先级,包括下面几种:处于active state的Activities
正在执行onReceive方法的Broadcast Receivers
正在执行onStart, onCreate或onDestroy方法的Service
标记为前台运行(foreground)的Service
Visible Process:顾名思义,这是指可以看见(visible),但不在前台(foreground)运行的程序。当一个Activity部分被遮住时,它就成了Visible
Process。例如程序运行时收到短信,有些短信会部分遮挡应用程序。Started Service Process:顾名思义,包含运行状态Service的Process。
Background Process:Process中所host的Activity既不visible,又没有任何运行中的service,使用last-seen-first-killed模式进行管理。
Empty Process:在资源不紧张时,Android会将运行结束的程序放在内存中,从而可以更快地启动这些程序。这种已经死亡但仍在内存中的Process,就是Empty
Process。
Android Application类简介
Application类具有这几个职责:
响应系统发出的Application级别的广播,例如low memory等。
在系统的不同组件之间传递对象。
管理多个组件共享的资源。
为了更好地第2,3条所要求的功能,Application类使用了单例模式。
重载Application类的生命周期事件方法
onCreate:重载此方法可以对Application的单例进行修改。
onlowMemory:重载此方法来清除缓存或释放其他资源。
onTrimMemory:往往发生在程序状态转为background时。
onConfigurationChanged:Application在配置文件发生变化时不会自动重启,所以可以在这个方法里响应配置修改事件。
Android 4学习(5):概述 - Android应用程序的生命周期的更多相关文章
- 我的Android 4 学习系列之创建应用程序和Activity:Manifest、Application、Activity
目录 介绍Android应用程序组件,以及使用这些组件构建的各种Android应用程序 Android应用程序的生命周期 如何创建应用程序Manifest 如何使用外部资源提供对位置.语言和硬件配置的 ...
- Android应用程序的生命周期
转自Android应用程序的生命周期 在对一个简单的Hello World工程进行项目结构剖析后,我们接着来学习下一个Android应用程序的生命周期是怎么样的,以便为后面的开发有个垫下良好的基石~ ...
- Android系列之Fragment(二)----Fragment的生命周期和返回栈
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- ASP.NET 应用程序(Application)生命周期概述
原文:ASP.NET 应用程序(Application)生命周期概述 引用MSDN:ASP.NET 应用程序生命周期概述 本 主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程 ...
- 教你理解微信小程序的生命周期和运行原理
转自:http://blog.csdn.net/tsr106/article/details/53052879 写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决.小助君 ...
- 理解微信小程序的生命周期和运行原理
写微信小程序,他的生命周期不能不知道,不知道小程序就会出现各种bug而无法解决.小助君公众号带你学习小程序的生命周期和运行原理. 小程序由两大线程组成:负责界面的线程(view thread)和服务线 ...
- 小程序的生命周期 launchApp
https://developers.weixin.qq.com/miniprogram/dev/api/launchApp.html?search-key=生命周期 launchApp(OBJECT ...
- asp.net MVC 应用程序的生命周期
下面这篇文章总结了 asp.net MVC 框架程序的生命周期.觉得写得不错,故转载一下. 转载自:http://www.cnblogs.com/yplong/p/5582576.html ...
- 微信小程序之生命周期(三)
[未经作者本人同意,请勿以任何形式转载] 上一篇介绍微信小程序开发工具使用和项目目录结构. 这一章节介绍微信小程序的生命周期,什么是生命周期呢? 通俗的讲,生命周期就是指一个对象的生老病死. 从软件的 ...
- asp.net MVC 应用程序的生命周期(上)
首先我们知道http是一种无状态的请求,他的生命周期就是从客户端浏览器发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序一个请求的 ...
随机推荐
- Kafka详解二:如何配置Kafka集群
问题导读1.Kafka有哪几种配制方法?2.如何启动一个Consumer实例来消费消息? Kafka集群配置比较简单,为了更好的让大家理解,在这里要分别介绍下面三种配置 单节点:一个broker的集群 ...
- Windows 配置Apache以便在浏览器中运行Python script的CGI模式
打开httpd.conf,找到”#ScriptInterpreterSource Registry “,移除前面的注释# (如果找不到这行,就自己添加进去) 找到“Options Indexes Fo ...
- Educational Codeforces Round 15 A, B , C 暴力 , map , 二分
A. Maximum Increase time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Don't add unneeded context不要加不需要的文本
- list!=null跟list.isEmpty()有什么区别?
这就相当与,你要喝水,前面list!=null就是判断是不是连水杯都没有,后面!list.isEmpty就是判断水杯里面没有水,连盛水的东西都没有,这个水从何而来?所以一般的判断是if(list!=n ...
- 搜索8--noi1817:城堡问题
搜索8--noi1817:城堡问题 一.心得 1.这题只是在普通的迷宫的基础上面加上了墙的概念,所以基本的思路和代码就和普通的迷宫是一样的,只不过需要多加上一层墙的判断 2.这里墙的判断是用的二进制加 ...
- 《Advanced Bash-scripting Guide》学习(十一):shift的用法
本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 4-7 使用shift #!/bin/bash #使用shift ...
- C# 6.0 (VS2015 CTP6)
/* C# 6.0 demo https://github.com/dotnet/roslyn/wiki/Languages-features-in-C%23-6-and-VB-14 */ using ...
- Install nginx on ubuntu
1. Install libpcre3, libpcre3-dev2. Install zlib1g-dev3. Download nginx and unzip it4. ./configure5. ...
- kylin_异常_01_java.io.FileNotFoundException: /developer/apache-kylin-2.3.0-bin/tomcat/conf/.keystore
一.异常现象 kylin安装完,启动后,控制正常,kylin后台也能正常访问.但是去看kylin的日志,却发现报错了: SEVERE: Failed to load keystore type JKS ...