Android活动的生命周期
掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序。
-----------------------------------------------返回栈-----------------------------------------------------------
Android的活动是可以层叠的。每启动一个新活动,就会覆盖在原有活动之上,然后点击Back键会销毁最上面的活动,下面的一个活动就会重新显示出来。
其实Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称为返回栈(Back Stack)。
在默认情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个活动时,处于顶栈的活动就会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。
系统总是会显示处于栈顶的活动给用户。
-----------------------------------------------活动状态------------------------------------------------
运行状态:当一个活动位于返回栈的栈顶时,这时活动就处于运行状态。
暂停状态:当一个活动不再处于栈顶位置,但仍然可见时,这时活动就进入暂停状态。内存极低情况下,系统才会考虑回收这种活动。
停止状态:当一个活动完全不可见时,就进入了停止状态。系统仍然会为这种活动保存相应的状态和成员变量,但并不可靠,仍有可能被系统回收。
销毁状态:当一个活动从返回栈中移除之后就变成了销毁状态。系统会回收此状态的活动,从而保证手机内存充足。
---------------------------------------------活动的生存期------------------------------------------------
Activity类的七个回调方法,覆盖了活动生命周期的每一个环节。
1.onCreate()————————初始化操作,活动第一次被创建时调用
2.onStart()—————————启动操作,活动由不可见变为可见时调用
3.onResume()————————交互操作,活动准备与用户交互时调用
4.onPause()—————————暂停操作,系统准备启动或恢复另一个活动时调用
5.onStop()——————————停止操作,活动完全不可见的时候调用
6.onDestroy()————————回收操作,活动被销毁之前调用
7.onRestart()————————重启操作,活动由停止变为运行状态之前调用
以上方法除了onRestart()方法,其他都是对应的,从而又可以将活动分为三种生存周期
完整生存期:
活动onCreate()方法和onDestroy()方法之间所经历的,就是完整生存周期。一般情况下,一个活动会在onCreate()方法中完成各种初始化操作,而在onDestroy()方法中完成释放内存的操作。
可见生存期:
活动在onStart()方法和onStop()方法之间所经历的,就是可见生存周期。在可见生存期内,活动对于用户总是可见的,即便有可能无法和用户进行交互。可以通过这两种方法,合理的管理那些对用户可见的资源。
前台生存期:
活动在onResume()方法和onPause()方法之间所经历的,就是前台生存周期。在前台生存期内,活动总是处于运行状态的,此时的活动是可以和用户进行交互的,和用户接触最多的也就是这个状态下的活动了。
Android活动的生命周期的更多相关文章
- Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...
- android 活动的生命周期
掌握活动的生命周期非常重要,因为一个正常的android应用,会有很多的活动,如何在这些活动之间进行切换.数据的交互等,就经常会用到活动的生命周期这一块的知识.可以说,只要掌握了活动的生命周期,才能更 ...
- 记不住的Android活动的生命周期
Activity基类定义了管理一个互动的生命周期的一系列事件. Activity生命周期的一系列事件onCreate()——当前活动首次被创建时使用.onStart()——当前活动对用户可见时调用.o ...
- android ——活动的生命周期
在其生命周期内,activity在运行.暂停和停止三种可能的状态间进行转换,不同状态之间互相转换的时候的调用不同的方法,重写这些方法就能在活动切换,被销毁时保存或传输数据,在被启动.被切换出来时接收数 ...
- Android笔记——活动的生命周期
一.活动的重要性 掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的游刃有余.你的应 ...
- Android学习笔记(五)——活动的生命周期
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 为了能写出流畅连贯的程序,我们需要了解一下活动的生命周期. 一.返回栈 Android 中的活动是可以层叠的. ...
- Android studio教程:[5]活动的生命周期
想要学好安卓开发,就必须理解安卓软件的生命周期,明白一个活动的创建.启动.停止.暂停.重启和销毁的过程,知道各个阶段会调用什么函数进行处理不同的情况,这里我就通过一个简单的例子让大家明白一个活动的生命 ...
- Android基础知识05—活动的生命周期
------ 活动的生命周期 ------ Android是使用任务Task来管理活动的,一个任务就是一组存放在栈里的活动的集合.每当启动一个活动 ,他就会在返回栈中入栈,并处于栈顶位置.而每当我们按 ...
- android:activity活动的生命周期
掌握活动的生命周期对任何 Android 开发者来说都非常重要,当你深入理解活动的生命 周期之后,就可以写出更加连贯流畅的程序,并在如何合理管理应用资源方面,你会发挥的 游刃有余.你的应用程序将会拥有 ...
随机推荐
- Bois设置教程
BIOS设置图解教程之Award篇 (目前主板上常见的BIOS主要为AMI与AWARD两个系列,如何辨别BIOS品牌系列请移步,本文详细讲解Award系列的BIOS设置图解教程,如果你的BIOS为AM ...
- zepto.js之ajax剖析
1.ajax的baseHeaders ajax插件中的baseHeaders对象的是http请求头部的信息 var mime = settings.accepts[dataType], baseHea ...
- SaltStack安装篇
一.基础介绍1.简介 salt 是一个基础平台管理工具 salt是一个配置管理系统,能够维护预定于状态的远程节点 salt是一个分布式远程执行系统,用来在远程节点上执行命令和查询数据 2.salt的核 ...
- Html.RenderPartial、Html.RenderAction联系与区别
1.引言 开发人员经常希望应用程序可以在多个不同的地方使用同样的Razor标签和HTML标记代码.这并不需要我们在多个地方重复这些标签,使用MVC中的分部视图和子动作可以让我们很好的解决类似的情况. ...
- C语言Hello world
#include"stdio.h" void main() { printf("Hello world!\n"); }
- iOS数据库学习(2)-基础SQL语句
/* 1. 创建一个数据表 */ CREATE TABLE IF NOT EXISTS t_dog (name text, age integer); CREATE TABLE IF NOT EXIS ...
- 贴上自己写的代码-jq隐藏事件
- ManualResetEvent详解
原文来自:http://www.cnblogs.com/tianzhiliang/archive/2011/03/04/1970726.html 1. 源码下载: 下载地址:http://files. ...
- gvim如何显示html属性代码提示? vim 如何显示 javascript属性及方法提示?
gvim如何显示html属性代码 可以在vim中 显示 html, css, js等的属性/方法 提示: 一是: 在 ~/.vim/after/syntax/ 目录中 安装 css-color.vim ...
- php-fpm服务启动脚本
在php-fpm还是打补丁的时候,php-fpm重启只需要执行php-fpm restart或者reload, 自从php5.3之后,php-fpm的启动和停止显得比较麻烦,特意改写了一份nginx的 ...