Activity声明周期中各个事件的执行时机

原创 2011年08月09日 16:01:27

1 从Activity的官方文档中能看到其生命周期为:onCreate, onStart, onResume  然后结束时候依次调用  onPause, onStop, onDestroy.

然后又分为:

  • entire lifetime----》onCreate----onDestroy
  • visible lifetime---->onStart----onStop
  • foreground lifetime ---->onResume-----onPause

在我的程序里,首先我生成了一个Activity,其处于foreground,不论我调用finish还是点击Back键,默认都要去依次调用onPause--->onStop-->onDestroy.
而且每次新打开一个,也是都要默认调用onCreate--->onStart--->onResume.(因为这个是处在最上层的Activity)

2  假如上面的例子是B生成了A这个Activity,那么在生成A后,B因为失去了foreground和visible,会依次调用B的onPause和onStop.然后当A结束返回后,会依次调用onRestart, onStart, onResume.

3  还有个函数叫做 onSaveInstanceState。这个怎么说呢,我的理解是当内存不足时候,系统会将处于unvisible状态的Activity进行一定的回收,也就是将这个类销毁。在销毁的时候会调用onSaveInstanceState,我们书写自己的代码将必要的状态数据保存一下。是保存在一个bundle中的,如果我们退后又浏览到这个Activity,就会调用onCreate去生成,但是传送的Bundle就是我们在onSaveInstanceState所使用的bundle。这样就能节省一部分内存,在需要的时候再加载。

4 在Android上还有一个home键,当B生成A这个Activity,现在Back Stack中栈顶是A,当这个时候按home键的时候,只执行A的onPause函数,然后显示界面,可是当重新点击B这个图标时候,又回到A在最顶上的堆栈状况了。

Android触摸屏事件派发机制详解与源码分析三(Activity篇)

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbobe...
  • yanbober
  • yanbober
  • 2015年05月23日 12:56
  • 17366

Android事件分发 ——Activity篇

在开发过程中,对于点击事件的处理是很频繁的。对于一个控件(View)来说,onClickListenr()和onTouchListener()有什么区别和联系?我们自定义了一个控件,点击自定义控件时如...
  • wl9739
  • wl9739
  • 2016年04月18日 11:32
  • 864

Android问题:Activity生命周期事件

四状态:活跃、暂停、停止、销毁。 活跃:用户启动,在前台运行; 暂停:运行且可见,但是被某通知或者事件覆盖掉了,用户可以看到activity但是不能与之交互; 停止:被启动的其他activity隐藏掉...
  • Kid_U_ForFun
  • Kid_U_ForFun
  • 2015年01月17日 15:53
  • 1999

View的事件分发机制(Activity篇)

这篇博客主要介绍在一个TouchEvent从Activity传递到View的流程,照例附上一张流程图:我们的TouchEvent首先接收到这个TouchEvent的是Acitivty中的dispatc...
  • freedom13905149949
  • freedom13905149949
  • 2016年07月21日 17:42
  • 1282

Android View 事件分发机制源码详解(ViewGroup篇)

前言我们在学习View的时候,不可避免会遇到事件的分发,而往往遇到的很多滑动冲突的问题都是由于处理事件分发时不恰当所造成的。因此,深入了解View事件分发机制的原理,对于我们来说是很有必要的。由于Vi...
  • a553181867
  • a553181867
  • 2016年04月30日 21:05
  • 8620

在Activity中响应ListView内部按钮的点击事件

  • 2015年05月12日 15:50
  • 1.39MB
  • 下载

Android学习-常见的UI控件 监听按钮的点击事件

onClick事件 1.Button和ImageButton都有一个onClick事件 通过自身的setOnClickListener(OnClickListener)方法添加点击事件 2...
  • baidu_37181928
  • baidu_37181928
  • 2017年10月04日 00:06
  • 137

Android复习-fragment声明周期与Activity生命周期(个人笔记)

Fragment生命周期(笔记): onAttach  onCreate onCreateView: onViewCreated onStart onReume: onPause: o...
  • sinat_31311947
  • sinat_31311947
  • 2017年03月20日 11:13
  • 289

Activity声明周期

Activity生命周期 每一个Android应用程序在运行时,对于底层的Linux Kernel而言都是一个单独的进程,但是对于Android系统而言,因为局限于手机画面的大小与使用的考虑...
  • zf1991719
  • zf1991719
  • 2014年12月02日 21:08
  • 476

activity ondestory()的调用时机

1. 按back键盘   ,调用finish()方法
  • JavaLive09
  • JavaLive09
  • 2014年04月30日 13:27
  • 647
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Activity声明周期中各个事件的执行时机
举报原因:
原因补充:

(最多只允许输入30个字)