文档章节

Activity生命周期(1)—事件回调函数

iBazinga
 iBazinga
发布于 2016/11/11 18:03
字数 718
阅读 151
收藏 0
点赞 0
评论 0

Activity生命周期

Activity从启动到销毁的过程。

Activity的4种状态

  • 活动状态
  • 暂停状态
  • 停止状态
  • 非活动状态 

Activity栈

栈顶的Activity处于活动状态,除栈顶以外的其他Activity处于暂停状态或停止状态,而被终止的Activity或已经出栈的Activity则不在栈内。

        随着用户在界面进行的操作,以及Android系统对资源的动态管理,Activity不断变化其在Activity栈中的位置,状态也不断在4种状态间转变。随着Activity自身状态的变化,Android系统会调用不同的事件回调函数,开发人员在事件回调函数中添加代码,就可以在Activity状态变化时完成适当的工作。

 Activity事件回调函数

1.Activity生命周期的事件回调函数 

函数 是否可终止 说明
onCreate() >Android启动后第一个被调用的函数
>常用来进行Activity的初始化(如创建view、绑定数据、恢复信息等)
onStart() >Activity显示在屏幕上时,该函数被调用
onRestart() >Activity从停止状态进入活动状态前,调用该函数
onResume() >当Activity可以接受用户输入时,该函数被调用
>此时的Activity处于Activity栈顶
onPause() >Activity进入暂停状态时,该函数被调用
>主要用来保持持久数据、关闭动画、释放CPU资源等
>该函数必须简短,因为另一个Activity必须等待该函数执行完毕后才能显示在界面上
onStop() >当Activity不对用户可见后,该函数被调用,Activity进入停止状态
onDestroy() >Activity被终止(进入非活动状态)前,该函数被调用
>程序主动调用finish()函数或程序被Android系统终结

 2.Activity状态保存/恢复的事件回调函数

函数 说明
onSaveInstanceState() 暂停或停止Activity前调用该函数,用以保存Activity的临时信息
onRestoreInstanceState() 恢复onSaveInstanceState()保存的Activity状态信息

        onSaveInstanceState() 和 onRestoreInstanceState() 函数不属于生命周期的事件回调函数,onSaveInstanceState() 在Activity 被暂时停止时(或被其他程序中断或者锁屏)被调用,而Activity被完全关闭时(调用 finish() 函数)则不会被调用。当暂停的Activity被恢复时,系统调用 onRestoreInstanceState() 函数。

        onSaveInstanceState() 函数会将界面临时信息保存在Bundle中,onCreate() 函数和onRestoreInstanceState() 函数都可以恢复这些保存的信息。一般简化的做法是在 onCreate() 函数中恢复保存数据,但有些特殊情况还是需要使用 onRestoreInstanceState() 函数恢复保存信息。如必须在界面完全初始化完毕后才能进行的操作,或有子类来确定是否采用默认设置等。(存疑)

© 著作权归作者所有

共有 人打赏支持
iBazinga
粉丝 11
博文 127
码字总数 42315
作品 0
深圳
程序员
Android4.0-Fragment框架实现方式剖析(一)

经过反复的学习对比,个人觉得带着问题学习新知是最有效的学习方式,因此文本就以提问的方式来讲述Fragment框架实现方式。 1、什么是Fragment? Fragment包含在Activity中,Fragment只能存在...

程序袁_绪龙
2015/07/07
0
0
Android零基础入门第86节:探究Fragment生命周期

一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用。Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期...

鑫鱻
2017/10/30
0
0
android Fragments详解二:创建Fragment

创建Fragment 要创建fragment,必须从Fragment或Fragment的派生类派生出一个类。Fragment的代码写起来有些像activity。它具有跟activity一样的回调方法,比如 onCreate(),onStart(),onPause...

晨曦之光
2012/03/12
0
0
Android Activity的生命周期详解

Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态: 1.当Activity位于栈顶时...

恰同学少年
2015/07/27
0
0
在Android 2.3中如何使用native_activity.h编写本地应用

现在,在Android2.3版本里,可以使用nativeactivity.h接口实现一个完整的native activity,在使用的时候,要确认回调函数不能阻塞主UI线程。更多信息,可以参考<ndkroot>/platforms/android...

晨曦之光
2012/03/13
0
0
Android开发学习笔记(五):Starting an Activity

Starting an Activity 不像其他的编程模式中,应用程序是由main()方法发起的,Android系统启动代码在一个activity实例通过调用的回调方法,对应于特定阶段的生命周期。有一系列回调方法用于启...

AllenYao
2013/01/07
0
1
Service的生命周期与Activity生命周期区别

碰到一面试题 简述activity/service生命周期? 组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁。在这期间,他们或许有效或许无效,有效时或许...

xiahuawuyu
2012/07/24
0
0
android-Fragment在生命周期做了什么?

FragmentActivity 生命周期,以及所在生命周期做了什么事? OnAttach:调用该方法时,Fragment会被连接到它的父Activity上;获取对父Activity的引用。 OnCreate:调用该方法来进行fragment的初...

pointerException
2015/07/28
0
0
android之Fragment(官网资料翻译)

Fragment要点 Fragment作为Activity界面的一部分组成出现 可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。 在Activity运行过程中,可以添加、移除...

随智阔
2013/05/26
0
0
Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图

最近自己想研究下地图,本来想研究google Map,但是申请API key比较坑爹,于是从百度地图入手,其实他们的用法都差不多,本篇文章就带领大家在自己的Android项目中加入百度地图的功能,接下来...

等待流星
2013/12/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

PostgresSQL 查看当前schema下所有的函数/存储过程

selectroutine_name from information_schema.routineswhere routine_catalog = 'YourDBName'and routine_schema = 'YourSchemaName'order by routine_name;...

Leyxiao
2分钟前
0
0
去除bootstrapValidator 的校验结果

$("#form").data('bootstrapValidator').destroy();//会报没有这个方法,很奇怪 $('#form').data('bootstrapValidator',null); $('#form').bootstrapValidator();...

暗中观察
4分钟前
0
0
java环境安装

1、首先下载jdk安装包,一般去官网,官网需要登录才可以下载。 2、下载完成双击运行,想改路径改下路径,比较简单。安装jdk安装完,会弹出个窗口,提示开始安装jre的位置,我这里窗口比较奇葩...

朝如青丝暮成雪
5分钟前
0
0
Linux Command

Copy with progress rsync -r --progress source dest

Lyle_W
6分钟前
0
0
个灯数据营销,帮你找回被浪费的广告费

近日,个灯受邀出席被喻为广告营销业界的年度盛会——第八届梅花网传播业大展北京站的活动。 在展会上,个灯总经理严雯婷女士带来了《数据增能,营销智能》的主题演讲,以理论与实践相结合的...

个推
8分钟前
0
0
java的反射机制理解

一、概念说明 java的反射机制,是在运行状态下,可以动态获取任意一个类的属性和方法;可以动态调用一个对象任意方法; 二、反射相关类 java.lang.Class; //类 java.lang.re...

盼望明天
12分钟前
0
0
nginx反向代理-多端口映射

代码解释 1.1 http:www.baidu.test.com默认是80,访问“/”利用反向代理,然后访问本地8083; 1.2 8083代表本地的前端工程访问地址,前端需要访问后台数据,”/”,继续代理到后台地址9803; ...

lilugirl
14分钟前
0
0
Jfinal使用log4j2打印日志

1,添加maven配置 <properties><log4j2.version>2.11.0</log4j2.version><slf4j.version>1.7.25</slf4j.version></properties> <!--slf4j及log4j2日志 --><dependency> ......

iborder
14分钟前
0
0
如何在Rancher 2.0上快速部署Datadog

Datadog是一种流行的托管监控解决方案,用于聚合和分析分布式系统的指标和事件。从基础架构集成到协作仪表板,Datadog为用户提供了一个简洁的单一窗格视图,用户可以快速查看对其最重要的信息...

RancherLabs
17分钟前
0
0
Java示例演示Functor 和monad

This article was initially an appendix in our Reactive Programming with RxJavabook. However introduction to monads, albeit very much related to reactive programming, didn't suit......

Quan全
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部