文档章节

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
10
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
301
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
287
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot设置项目访问路径

今天配置Springboot项目访问路径遇到一个小坑,这里做一个记录。针对Springboot2.0以下版本和以上版本的配置方式是不同的。这里针对yml配置文件做记录,properties文件配置方式相同。 Spring...

王子城
24分钟前
5
0
Redis 序列化方式StringRedisSerializer、FastJsonRedisSerializer和KryoRedisSerializer

当我们的数据存储到Redis的时候,我们的键(key)和值(value)都是通过Spring提供的Serializer序列化到数据库的。RedisTemplate默认使用的是JdkSerializationRedisSerializer,StringRedis...

xiaolyuh
35分钟前
5
0
jquery通过css的color属性实现选取特殊颜色的内容

今天一个朋友问到怎么使用jQuery选取特定颜色的内容,以前没有遇到过这样的需求。首先,很多人可能想到使用jQuery属性选择器来实现,这是不可以的,因为 color 是 css 的属性,而不是 html 的...

前端老手
46分钟前
2
0
python3 网络爬虫开发实战 win10环境下 图形验证码识别需要安装的工具及地址

先下载安装tesseract exe文件 tesseract exe文件安装下载地址:https://digi.bib.uni-mannheim.de/tesseract/ win下直接下载双击安装即可,注意路径,下面用于配置环境变量。 参考网址: ht...

S三少S
今天
10
0
PHP学习记录整理

PHP 输出文本的基础指令:echo 和 print。 echo和print的区别 echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) echo 输出一个或者多个字符串。 print ...

半缘修道半缘君丶
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部