Activity生命周期解说
前言:
一直想着写一些Android基础知识分享给大家。可是有时候又认为怕写不好误导了大家学习Android。思前想后认为还是去Android官网看看,发如今Android官网上事实上就能学习到非常多知识,而且最新的知识他都会及时的更新,所以决定依照官网带领大家学习Android知识,在中间会穿插本人在做项目时的一些体会和总结。
应用程序的入口:
全部学习Android的基本上都从学习Activity開始,由于它是Android的大门。相当于Java程序的入口函数main()。当你查看一个Java项目时你肯定想到的是从它的入口函数main()開始,一步一步的深入去看这个项目的逻辑是怎么展开的,查看Android项目也不例外,可是它的入口不是main函数。而是主Activity类。
在Activity中有一些特定的方法称为生命周期函数(也叫回调函数)。这些函数不须要你去调用它,而是会自己主动的被Android系统调用,Android系统会依据用户的操作调用这些生命周期函数,比方用户点击了应用图标来启动应用程序,Android系统就会调用应用程序中主Activity的onCreat()方法,用户按返回键则会触发onPause()函数,你所须要做的就是利用这些生命周期函数,把你的逻辑写在恰当的位置。
理解Activity生命周期:
怎么利用生命周期函数?首先是要理解Activity的生命周期。在Android官网上有一张以下的图片,它绘制的就是一个Activity生命周期金字塔。
在上图中每个生命周期中的状态(Created、Started、Resumed、Paused、Stoped、Destroyed)能够看做是组成金字塔的每个台阶,这些台阶是通过一些生命周期函数才干到达的。
在用户点击应用图标启动应用程序的时候是从金字塔最底层。经过onCreat()、onStart()、onResume()这几个函数一步一步走向金字塔顶峰,这几个函数都是Android系统帮你调用的。不须要你处理。你要做的是在这几个函数中做好程序的初始化工作。当到达金字塔顶部Resumed状态时应用程序获取了最大的前台执行权限,用户才干与应用程序进行交互,比方进行聊天、点击应用程序的其它功能等。当用户离开应用程序的时候Android系统会调用Activity的onPause()、onStop()、onDestroy()方法,一步一步从金字塔顶层退下来,在从顶层退下来的时候也能够从新回到顶层。
理解三个状态:
Activity中的Created、Started、Resumed、Paused、Stoped、Destroyed这七个状态仅仅有三个状态能够精巧存在一段时间。其它的状态非常快就会过去。
这三个状态是:
- Resumed状态:
在这个状态下Activity处于前台活动状态。也就是能够和用户进行交互的状态。也叫执行状态。
- Paused状态:
在这个状态Activity界面部分被其它Activity遮挡,无法响应用户的全部操作。
- Stopped状态:
在这个状态Activity全然被隐藏。对于用户是不可见的状态,应用程序在后台。进入这个状态时,Activity的状态信息要被保留下来。
对于其它状态仅仅是短暂的停留,不如系统调用onCreate()后,它迅速调用onStart(),紧接着onResume()。
生命周期注意事项:
对于Activity的生命周期在实际项目中的怎么应用你须要记住下面几点:
- 在用户用你的应用程序时,假设有来电或者用户切换到其它应用,你的应用程序不能出现异常退出,比方非常严重的崩溃(crash)或者无响应(ANR);
- 在用户不再使用你的应用时,及时释放掉你应用程序占用的系统资源,比方在程序进入后台时要停掉一些不必要的线程;
- 在用户离开你的应用的时候要保存用户当前的状态,再用户再次回到你的应用的时候恢复之前的状态;
- 在进行横竖屏切换的时候要满足上面的第一和第三条规则。
以上是Activity生命周期的基本知识。下一篇文章将会结合代码解说Activity生命周期函数。
假设大家有什么疑问和问题请关注我的微信公众号:coder_online给我反馈。
本文属原创,转载请注明出处。违者必究
关注微信公众平台:程序猿互动联盟(coder_online),你能够第一时间获取原创技术文章,和(java/C/C++/Android/Windows/Linux)技术大牛做朋友,在线交流编程经验,获取编程基础知识,解决编程问题。程序猿互动联盟。开发者自己的家。
Activity生命周期解说的更多相关文章
- 基础总结篇之中的一个:Activity生命周期
子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...
- 文章之间的基本总结:Activity生命周期
孔子:温故而知新.它可以作为一个教师.<论语> 同样的学习技巧.对于技术文件或书籍的经典技术,期待再次看到它完全掌握,这基本上是不可能的,所以,我们常常回来几次,然后仔细研究,为了理解作者 ...
- 文章之间的基本总结Activity生命周期
子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...
- [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
转自:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在前 ...
- Activity生命周期(深入理解)
今天看到一篇大神总结Activity的文章,内容甚为详细,特此转载http://www.cnblogs.com/lwbqqyumidi/p/3769113.html Android官方文档和其他不少资 ...
- Android Activity生命周期
从android api文档摘抄出来的activity生命周期图如下: Activity有如下四种状态 a.活动状态 activity处于屏幕前台,获取到了焦点可以和用户进行交互,同一时刻只有一个a ...
- Android Activity生命周期详讲
管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...
- android Activity生命周期(设备旋转、数据恢复等)与启动模式
1.Activity生命周期 接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...
- android开发------Activity生命周期
这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...
随机推荐
- .net-C#代码判断
ylbtech-doc:.net-C#代码判断 C#代码判断 1.A,C#代码判断返回顶部 01.{ C#题目}public static void Main(string[] args){ ...
- Redis源码分析系列
0.前言 Redis目前热门NoSQL内存数据库,代码量不是很大,本系列是本人阅读Redis源码时记录的笔记,由于时间仓促和水平有限,文中难免会有错误之处,欢迎读者指出,共同学习进步,本文使用的Red ...
- 数字图像处理-----主成成分分析PCA
主成分分析PCA 降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有68%的值落于正负标准差之 ...
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- vs2010 无法连接到asp.net development server
http://blog.csdn.net/xqf309/article/details/7881257 今天打开之前的程序,按了F5进行调试,等了会弹出窗体来说:无法连接到asp.net develo ...
- poj1000 A+B Problem
Description Calculate a+b Input Two integer a,b (0<=a,b<=10) Output Output a+b Sample Input 1 ...
- sqlserver 中的GUID 全局唯一标识 -摘自网络
--简单实用全局唯一标识 DECLARE @myid uniqueidentifierSET @myid = NEWID()PRINT 'Value of @myid is: '+ CONVERT(v ...
- 主席树模板(poj2104)
主席树是可持久化线段树,可以记录线段树的历史版本. 代码中和线段树不同的是,l,r记录的是左右子树编号,因为普通的线段树版本中,左右子树自然就是o<<1和o<<1|1,但是主席 ...
- JS代码格式化修改表格的数值的格式
今天在cognos中第一次需要用到JS,主要是报表页面展示的时候是可能得到如下的数据 ,我需要对其中类型中有金额字样的,后面的数值,精确2位小数:有百分比字样的,数值显示成百分比.如下. 我先尝试了自 ...
- zoj 1610 Count the Colors
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=610 Count the Colors Time Limit:2000MS ...