文档章节

Android 第六课——Activity高级

learn_more
 learn_more
发布于 2015/01/02 23:14
字数 872
阅读 254
收藏 13

Activity 生命周期:

生命周期7个方法的调用时机:

1)onCreate:第一次创建这个Activity时,也就是系统中没有缓存当前的Activity时,这个方法首先被调用。调用之后这个Activity就会被压入所谓的Android Task栈中缓存起来,下次用时出栈就可以。所以,为了更加节约资源,我们一般把Activity所对应的layout中拥有的组件首先使用private作为这个Activity的私有成员,然后在onCreate方法中初始化,这样只要在Activity创建的时候,初始化一次组件就够了。

2)onstart:当这个Activity成为用户可见状态时,也就是在手机界面上正确显示的时候这个方法会被调用。所以,如果一个Activity之前已经创建好了,下次再次调用时(比如返回按钮)就会从Task栈中获取直接返回给用户,那么就不会再调用onCreate了,而是先调用onRestart,然后等到用户可见状态时调用onStart。

3)onResume:当这个Activity成为用户可见状态而且用户可以获取焦点时,也就是在onStart之后,当这个视图可以与用户交互时这个方法会被调用。这个方法调用完成之后,整个Activity就是处于运行状态了。

4)onPause:当一个Activity正在使用,这时另一个Activity开始启动(比比如玩游戏的时候突然来电话)时,那么前面那个Activity会调用onPause方法,使这个Activity处于暂停状态。新的Activity如果第一次创建就会调用OnCreate否则调用onRestart。

5)onStop:当这个Activity被新的Activity完全遮住时,也就是新的Activity完全遮挡了这个Activity,那么这个Activity就会调用onStop方法。

6)onRestart:当这个Activity已经创建好缓存在Task栈中可以直接取出返回给客户时,这个方法就会被调用。也就是当这个Activity从Task栈中出栈的时候,这个方法会被调用。

7)onDestroy:如果在代码中显示调用了finish方法,或者系统资源不够用的时候,或者用户在当前Activity中按下了返回键时,这个方法就会被调用。这个方法被调用后,说明Task中没有这个Activity的缓存,那么下次启动这个Activity时就不是调用onReStart了而是调用onCreate从头开始。


Task概念:

1) A Task is a stack of activities

2)在应用程序启动时,第一个启动的Activity创建之后就会被压入Task栈中,紧接着如果这个时候又一个Activity被创建那么这个新的Activity又会被压入栈中,依次类推,Task栈就类似于Android系统的一个Activity换成机制。当我们点击返回按钮时,Task栈中的Activity会逐个弹出,如果这个Activity被finish了,那么这个Activity就不会缓存在Task栈中了,下次需要从新onCreate。



© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
到场率高达96% 这才是高水准技术大会应该有的样子

中国最具前沿性、专业性的安卓技术会议——2018安卓巴士开发者大会的上海首站已于上周六圆满结束啦~ 展会一个一大清早就人挤人的大会现场! 早上七点半就有开发者到场领书的“讲师海报集赞”...

逆鳞龙
2018/08/28
8
0
Qt for Android 环境搭建方法

Qt for Android 环境搭建方法 第一步、准备所需要的安装包 (1)下载qt-windows-opensource-5.1.1-android-x86-win32-offline, (不同配置的机型下载不同的版本),下载路径:http://qt-pro...

萨斯辈的呼唤
2013/12/10
16.9K
3
北京GDG 7月 两场 Android 技术主题分享,金山、有道、知乎讲师…

7月21号和7月28号的下午将分别在京仪大酒店和车库咖啡举行两场 Android 技术分享,欢迎大家参加!有包括来自金山、有道、知乎等 Android 开发带来的技术分享。 1. 北京 GDG Android 技术分享...

韩国恺
2013/07/13
296
0
Android 第六课——Activity生命周期

声明:本文转载自 http://blog.csdn.net/liuhe688/article/details/6733407 , 感觉读了这篇文章之后,对Activity又是一个更深层次的理解,所以果断手贱转载了!希望自己以后能多看看这篇文章...

learn_more
2015/01/02
91
0
Android最新总结自定义控件知识总汇

Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示 http://blog.csdn.net/zl18603543572/article/details/50811771 Android自定义ImageView(二)——实现双击放大与缩小...

赵子龙
2016/03/12
286
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
16分钟前
2
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部