安卓应用程序的生命周期

(1)前台(Foreground)进程
与用户当前正在做的事情密切相关,不同的应用程序组件能够通过不同的方法使它的宿主进程移到前台。当下面任何一个条件满足时,都可以考虑将进程移到前台。
进程正在屏幕的最前端运行一个与用户交互的Activity(它的onResume()方法被调用);
进程有一个正在运行的BroadcastReceiver(它的BroadcastReceiver.onReceive()方法正在执行);
进程有一个Service,并且在Service的某个方法(Service.onCreate()、Service.onStart()或者Service.onDestroy())内有正在执行的代码。
(2)可见(Visible)进程
它有一个可以被用户从屏幕上看到的Activity,但不在前台——其onPause()方法被调用。例如:如果前台的Activity是一个对话框,以前的Activity隐藏在对话框之后,就可能出现这种进程。这样的进程很重要,一般不允许被杀死,除非为了保证前台进程的运行不得不这样做。

(3)服务(Service)进程
有一个已经用startService() 方法启动的Service,虽然这些进程用户无法直接看到,但它们做的事情却是用户所关心的(例如:后台MP3回放或后台网络数据的上传/下载)。因此,系统将一直运行这些进程,除非内存不足以维持所有的前台进程和可见进程。
(4)后台(Background)进程
拥有一个当前用户看不到的Activity(它的onStop()方法被调用),这些进程对用户体验没有直接的影响。如果它们正确执行了Activity生命周期,系统可以在任意时刻杀死进程来回收内存,并提供给前面3种类型的进程使用。系统中通常有很多这样的进程在运行,因此要将这些进程保存在LRU 列表中,以确保当内存不足时用户最近看到的进程最后一个被杀死。
(5)空(Empty)进程
不包含任何处于活动状态的应用程序组件。保留这种进程的唯一原因是,当下次应用程序的某个组件需要运行时,不需要重新创建进程,这样可以提高启动速度。
以上所说的“进程”是从系统运行的角度考虑的,各种不同的进程可以理解成Android的各种组件的不同状态机(state machine)。如果从应用程序的代码以及运行情况考虑,可以关注Android的各种组件相对应的生命周期。

时间: 2024-10-06 07:28:02

安卓应用程序的生命周期的相关文章

2. iOS程序的生命周期

程序启动-生命周期 来自:  QQ: 853740091 1.首先讲解UIApplication对象 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就

[转载] iOS应用程序的生命周期

iOS应用程序的生命周期 2015-06-23 iOS大全 (点击上方蓝字,快速关注我们) iOS应用程序一般都是由自己编写的代码和系统框架(system frameworks)组成,系统框架提供一些基本infrastructure给所有app来运行,而你提供自己编写的代码来定制app的外观和行为.因此,了解iOS infrastructure和它们如何工作对编写app是很有帮助的. Main函数入口 所有基于C编写的app的入口都是main函数,但iOS应用程序有点不同.不同就是你不需要为iO

asp.net MVC 应用程序的生命周期

首先我们知道http是一种无状态的请求,他的生命周期就是发出请求开始,到得到响应结束.那么MVC应用程序从发出请求到获得响应,都做了些什么呢? 本文我们会详细讨论MVC应用程序的生命周期和一个请求,从一个控件到另一个控件是怎样被处理的.我们还会详细介绍一下整个请求的生命周期中,用到的相关组件.在平常的开发过程中,我们可能知道怎样去使用MVC框架来处理相关的请求,大部分的时候我们只是在controller和action方法之间做相关的处理. 当我最开始学习使用mvc的时候,困扰我的一个问题就是,一

微信小程序之生命周期(三)

上一篇介绍微信小程序开发工具使用和项目目录结构. 这一章节介绍微信小程序的生命周期,什么是生命周期呢? 通俗的讲,生命周期就是指一个对象的生老病死. 从软件的角度来看,生命周期指程序从创建.到开始.暂停.唤起.停止.卸载的过程. 下面从一下三个方面介绍微信小程序的生命周期: 应用生命周期 页面生命周期 应用生命周期影响页面生命周期 >>>应用生命周期 用户首次打开小程序,触发 onLaunch(全局只触发一次). 小程序初始化完成后,触发onShow方法,监听小程序显示. 小程序从前台进

iOS 应用程序的生命周期浅析

做ipone开发有必要知道iPhone程序的生命周期,说白了就是点击应用图标启动程序到到退出程序,在这个运行的过程中底下的代码到底发生了什么,只有理解生命周期,有利于我们开发人员开发出更好的应用. 当用户点击一个图片的时候,程序开始运行,从main函数开始: int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDe

应用程序的生命周期

应用程序的生命周期: 要了解程序的生命周期必须先了解程序的启动原理: 1.程序的入口main函数 2.进入UIApplicationMain函数(循环函数) 2.1创建UIApplication实例 2.2实例化Application的delegate 2.3开启事件循环 3.根据有无storyboard创建并显示窗口 以下示例图,仅仅选取了生命周期的部分方法,以便示例

iOS_应用程序的生命周期

每一个iPhone程序都包含唯一一个UIApplication对象,它管理整个程序的生命周期,从加载第一个显示界面开始,并且监听系统事件.程序事件调度整个程序的执行. int main(int argc, char *argv[]) {       NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool rele

UI1_应用的程序的生命周期

// // AppDelegate.m // UI1_应用的程序的生命周期 // // Created by zhangxueming on 15/6/29. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "AppDelegate.h" //开发工具: //1.xcode : 编辑工程代码, 修改工程 //2.IOS simulator : 模拟器,在mac电脑上模拟iphone 设备的运行环境

应用程序的生命周期(引用别人的)

一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplication]可以获得这个单例对象 (4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获