文档章节

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

维他ViTa
 维他ViTa
发布于 2016/11/11 18:03
字数 718
阅读 199
收藏 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() 函数恢复保存信息。如必须在界面完全初始化完毕后才能进行的操作,或有子类来确定是否采用默认设置等。(存疑)

© 著作权归作者所有

共有 人打赏支持
维他ViTa
粉丝 12
博文 135
码字总数 44057
作品 0
深圳
程序员
私信 提问
Android4.0-Fragment框架实现方式剖析(一)

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

程序袁_绪龙
2015/07/07
0
0
如何绑定页面生命周期(二)-基于Android Architecture Components的Lifecycle实现

上篇文章如何绑定页面生命周期(一)-Glide实现介绍了Glide实现生命周期感知的原理,这里我们再介绍基于Android Architecture Components的Lifecycle实现页面生命周期感知。 Lifecycle是And...

宇是我
07/29
0
0
Android零基础入门第86节:探究Fragment生命周期

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

鑫鱻
2017/10/30
0
0
Android Activity的生命周期详解

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

恰同学少年
2015/07/27
0
0
Service的生命周期与Activity生命周期区别

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

xiahuawuyu
2012/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Zookeeper分析

沉稳2018
27分钟前
3
0
mockito learn one

mockito 介绍 mockito是一个很好用的模拟测试框架,能够让你写出简单优美测试,它不会给你残留的测试,因为它可读而且能够简单的验证错误。 如何使用? 引入依赖 <!-- https://mvnrepository...

writeademo
42分钟前
1
0
String转成JSON的实现

String转成JSON 这个依赖很重要,我们将围绕fastjson中的JSONObject这个类来谈转换 欢迎工作一到八年的Java工程师朋友们加入Java高级交流:854630135 本群提供免费的学习指导 架构资料 以及免...

编程SHA
53分钟前
1
0
详解Object.values(),Object.keys(),Object.entries(),Object.create(),includes()

(1)Object.keys() // 返回数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。 eg:var obj = {a:1,b:'gy'} Object.keys(obj) // ['a','b'] (2)...

JamesView
今天
2
0
Git —— 创建版本库和提交回退版本

二、 创建版本库 版本库又叫做仓库,简单理解就是一个目录,这个目录里面所有的文件都可以被Git管理起来,每个文件的修改、删除,Git都可以跟踪,便于追踪历史与还原。找到一个合适的位置,创...

lwenhao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部