前言:

一直想着写一些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. bjfu1238 卡特兰数取余

    题目就是指定n,求卡特兰数Ca(n)%m.求卡特兰数有递推公式.通项公式和近似公式三种,因为要取余,所以近似公式直接无法使用,递推公式我简单试了一下,TLE.所以只能从通项公式入手. Ca(n) = ...

  2. IOS-day03_OC中的get和set

    OC中的get和set实质和C#/java中的一样 只是表现形式不同而已 如下: @interface Car : NSObject { int wheels; } -(void) run; -(vo ...

  3. 马上着手开发Mac应用程序

    你是否想要开发 Mac 应用程序却又不知道从哪里入手?本路线图提供了 Mac 应用程序开发的绝佳起点,即使你已经是一个 iOS 开发专家,本路线图对你依然适用.Apple让开发应用程序和提交应用程序到 ...

  4. LeetCode题解——3Sum

    题目: 给定一个数组,找出其中和为0的所有3个数的组合.每个组合的3个数都是非递降的. 解法: 先排序再遍历,设置3个指针,第一个依次遍历,第二三个在第一个指针后面的部分里,左右夹逼查找和为第一个数的 ...

  5. Tkinter教程之Event篇(3)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823550 '''Tkinter教程之Event篇(3)''''''11.两个事件同时绑定到一 ...

  6. Tkinter教程之Scale篇

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1811313 '''Tkinter教程之Scale篇'''#Scale为输出限定范围的数字区间, ...

  7. 直接调用系统Camera

    关键思路: 初始化 组件: 创建并启动拍照intent: 使用回调函数onActivityResult()处理图像. 关键代码: 初始化 组件: takePicBtn = (Button) findV ...

  8. Codevs No.1163 访问艺术馆

    2016-05-31 20:48:47 题目链接: 访问艺术馆 (Codevs No.1163) 题目大意: 一个贼要在一个二叉树结构的艺术馆中偷画,画都处于叶子节点处,偷画和经过走廊都需要时间,求在 ...

  9. Makefile 知识点

    $@ $@ is the name of the target. $? The $? macro stores the list of dependents more recent than the ...

  10. 第二百五十七天 how can I 坚持

    下了个vmware12,不能用,不支持intel vx.电脑太老了,该换了,不过还很好用.该咋办.明年买个小米笔记本. 小米今天出了个小米自行车.不过不是小米生态链产品,好丑. 今天懒掌柜定做宣传服. ...