前言:

一直想着写一些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生命周期解说的更多相关文章

  1. 基础总结篇之中的一个:Activity生命周期

    子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...

  2. 文章之间的基本总结:Activity生命周期

    孔子:温故而知新.它可以作为一个教师.<论语> 同样的学习技巧.对于技术文件或书籍的经典技术,期待再次看到它完全掌握,这基本上是不可能的,所以,我们常常回来几次,然后仔细研究,为了理解作者 ...

  3. 文章之间的基本总结Activity生命周期

    子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...

  4. [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!

    转自:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在前 ...

  5. Activity生命周期(深入理解)

    今天看到一篇大神总结Activity的文章,内容甚为详细,特此转载http://www.cnblogs.com/lwbqqyumidi/p/3769113.html Android官方文档和其他不少资 ...

  6. Android Activity生命周期

    从android api文档摘抄出来的activity生命周期图如下: Activity有如下四种状态 a.活动状态  activity处于屏幕前台,获取到了焦点可以和用户进行交互,同一时刻只有一个a ...

  7. Android Activity生命周期详讲

    管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...

  8. android Activity生命周期(设备旋转、数据恢复等)与启动模式

    1.Activity生命周期     接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...

  9. android开发------Activity生命周期

    这几天工作比较忙,基本没有什么时间更新播客了. 趁着今晚有点时间,我们来简单说一下什么是Activity生命周期和它们各阶段的特征 什么是生命周期 在还没有接触android开发的时候,听到有人说Ac ...

随机推荐

  1. PHP学习笔记--文件目录操作(文件上传实例)

    文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...

  2. [BILL WEI] stimulsoft 分组页眉页脚的使用

    我们在通过stimulsoft设计报表的时候,有的时候,需要做出如下图报表样式 这个时候,因为箱号是分开扩展的,我们就需要用到分组页眉了,如下图demo跟实例所示:

  3. bug报告-常用词汇中英对照表

  4. IAR编译信息分析

    1.怎么设置可以查看单片的内存(消耗)使用状况? IAR的菜单栏 -->Tools -->IDE Options -->Messages -->Show build messa ...

  5. springMVC(注解版笔记)

    springMVC(注解版) 较之于非注解版本,发生一下变化: 1.配置文件需要配置的标签有: <!-- 包的扫描,此包下面的所有包都启用注解 --> <context:compon ...

  6. QT-【转】Qt 4迁移至Qt 5

    将Qt 4代码迁移到Qt 5还是比较简单的.实际上,在Qt 5开发过程中就已经注意了与Qt 4代码保持兼容性. 与Qt 3到Qt 4的迁移不同,Qt 5的核心类库并没有做大的API的修改,只有几个新的 ...

  7. MDI端口和MDIX端口是什么? 又有什么作用?

    是网线的标准A类接法和B类接法.也就是人们通常所说的交叉网线和直联网线.直联网线就是 白黄 黄 白绿 蓝 白兰 绿 白棕 棕 另一端同样如此.交叉网线就是 另一端的1和3,2和6对调.这样就成了交叉网 ...

  8. QT5.3+VS2013+QCustomPlot+QwtPlot+QwtPlot3D使用环境配置

    VS安装QT后运行环境所需配置 安装好QT和QT在VS下的插件之后: 1.打开VS,找到QT5→QT Option,如下: 2.配置电脑环境变量,在系统变量→Path下增加QT的动态库所在文件夹,也就 ...

  9. reverse the string word by word

    题目:Given an input string, reverse the string word by word. For example,Given s = "the sky is bl ...

  10. LyX转Word

    写毕业论文是一件非常繁锁的事情,一大堆的图片.公式都要往上贴,有时弄不好就把编号搞错了,有时可能没注意,一不小心字体格式.版面格式又全乱了.怎么办?--其实这只是在word环境下才会有的烦恼. 对于w ...