Activity的生命之路

activity的生命周期这张图是最经典的了,下面我就说一下 这张图的脉络:
第一条线我们这么走
onCreate→onStart→onResume→onPause→onStop→onDestroy
这条线路是这个activity走的最正常的一条路,说的就是一个activity的建立到退出的全过程。
接下来这个图的几个分支:
onCreate→onStart→onResume→onPause→onStop→onRestart→onStart...
这条路是一个循环,我具体说下这个是遇到了什么情况才产生的现象,这个是当你开启一个activity时,这时通过点击该activity里的按钮或是其他事件启动了另一个activity,这时我们就假设之前的activity是甲,现在正启动的activity是乙,乙不可能一下子就能启动起来,他需要整合一些资源,就在这个时候,甲调用了onPause的方法,是自己停了下来,这个很可能是怕用户在这个期间再触发其他事件导致会产生一些问题,所以甲停了下来,然后乙准备好了,调用onCreate方法,接下来调用onStart方法,然后是onResume方法,等这一切都完事了,甲才调用onStop方法,接下来如果乙运行完毕,按了返回按钮,这个时候乙就会调用onPause方法,然后甲可以恢复了,甲调用onRestart方法,然后紧接着是onStart方法,甲调完之后,乙调用onStop方法,接下来是乙的onDestroy方法,这个周期就结束了,这个完事了之后不知道你有没有发现,一旦是遇到什么情况,当前的activity首先要做的就是onPause方法,接下来就是等待,等待对方初始化完毕,然后就继续接下来的内容,就有点像一个人再干一件事情,正干着呢,他的朋友突然来了,说你歇会吧,然后他就先停下,但只是放下了手头上的工作,但并没有离开,当朋友把准备工作做完之后,他就下去换上他的朋友,这对所有的窗体都好用吗,并不是,这里要纠正一点,Dialog这个特殊的类型,他与activity没有什么关系,他更像是一个View的组件,如果他出现挡住了一个activity,那这个activity将不理他,什么也不处理,该干啥继续干啥,所以有些人说onPause方法是用来使activity失去焦点的这句话并不完全准确,因为当dialog出现,activity同样会失去焦点,但是他并没有回调onPause函数。
下面这条路:
onCreate→onStart→onResume→onPause→onResume...
这依旧是一条循环,这个和前面说的那个dialog遇到的情况有些像,只不过这次的不是普通的弹出dialog挡住的界面,而是一个基于activity的主题对话框,实际上对话框大致来说应该分两种,一个是弹出对话框,就是刚刚说的那个,现在要说的刚好是另一个,是主题对话框,主题对话框是基于activity的,所以,当一个activity甲正在运行的时候,通过某些事件产生了一个主题对话框,这个时候,activity会立刻调用onPause,接下来,这个对话框出现了,然而后边的activity并不会调用onStop,因为主题对话框虽然基于activity,但是它并不能占据整个屏幕,所以后边的activity还是有露出来的一部分的,所以activity值调用onPause,当按返回键的时候,那个主题对话框没了,然后activity会调用到onResume函数,回到之前的状态。
下面:
onCreate→onStart→onResume→onPause→onStop→onCreate...
同样也可能是
onCreate→onStart→onResume→onPause→onStop→onDestroy→onCreate...
这两种情况是差不多的,可以打个比方,当一个activity处于onResume的时候,这时按了home键,我们知道,他接下来会调用onPause,onStop方法,这时我们将进程杀掉,再通过home回来,会发现该activity又重新调用了onCreate方法,同理,当一个activity处于onResume的时候,这时用返回键一次一次的退出,最后将程序完全退出,这个时候activity就会调用到onDestroy方法了,这个时候如果突然将进程杀死,然后再回来,会发现activity还是从onCreate调起的。
好了,以上是我对activity的一路走来的理解,网上的介绍很多,这是我个人的理解,希望大家多多给予意见如果哪里有争议,麻烦提出来。
Activity的生命之路的更多相关文章
- Android开发学习之路--Activity之生命周期
其实这篇文章应该要在介绍Activity的时候写的,不过那个时候还不怎么熟悉Activity,还是在这里详细介绍下好了.还是参考下官方文档的图吧: 从上面的流程,我们可以看出首先就是打开APP,开始执 ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- Android开发之Activity的生命周期以及加载模式
本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周 ...
- Activity的生命周期
Activity的生命周期 以往我们实现页面间的跳转都是实例化Intent类的对象,但是页面在我们眼前的出现与消失没有我们所看到的那么简单,它有一个复杂的生命周期,一个页面的出现,被覆盖,再次出现,被 ...
- 浅谈Android中Activity的生命周期
引言 我想对于Android开发人员来说,Activity是再熟悉不过了,今天我们就来探讨下Activity的生命周期.熟悉的掌握Activity对于开发健壮的Android应用程序来说至关重要.下面 ...
- 关于activity的生命周期的随笔
在activity的生命周期中,我总是容易混淆,onstart和on resume ,on pause和onstop 原来这个都是一对的. onstart 对应 onstop ,意义在于使页面显示出来 ...
- 每天一点Android干货-Activity的生命周期
Activity Activity是这样一个程序组件,它为用户提供一个用于任务交互的画面. 一个应用程序通常由多个activity组成,它们彼此保持弱的绑定状态.典型的,当一个activity在一个应 ...
- Android中Activity的生命周期
简介: 这个基本是必问的问题了,说一下你对Activity生命周期的理解,呵呵… onCreate, onStart, onResume, onPause, onStop, onDestroy, on ...
- Android Activity的生命周期简单总结
Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...
随机推荐
- ARC时代的内存管理
什么是ARC Automatic Reference Counting (ARC) is a compiler feature that provides automatic memory manag ...
- ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法
ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法 (ITU‑R 102/6号研究课题) (2007年) 范围 数字广播系统允许提供多媒体和数据广播应用,包括视频.音频.静态图像. ...
- Linux备份策略(第二版)
备份策略 备份思想 一.系统潜在的威胁 Ø 系统硬件故障 Ø 软件故障 Ø 电源故障 Ø 用户的误操作 Ø 人为破坏 Ø 缓存中的内容没有及时的写入磁盘 Ø 自然灾害 二.备份介质的选择 备份介质:硬 ...
- 安卓TV开发(前言)— AndroidTV模拟器初识与搭建
原文:http://blog.csdn.net/sk719887916/article/details/39612577skay 前言:移动智能设备的发展,推动了安卓另一个领域,包括智能电视和智能家居 ...
- java时间操作
这篇讲的也很专业:http://soft.zdnet.com.cn/software_zone/2007/1129/660028.shtml java中的时间操作不外乎这四种情况: 1.获取当前时间 ...
- JAVA调用数据库存储过程
下面将举出JAVA对ORACLE数据库存储过程的调用 ConnUtils连接工具类:用来获取连接.释放资源 复制代码 package com.ljq.test; import jav ...
- Android之动画
Android的动画可以分为三种,View动画.帧动画.属性动画.View动画通过对场景里的对象不断做图像变化(平移.缩放.旋转.透明度)从而产生动画效果,它是一种渐进式动画,而且View动画支持自定 ...
- JqueryMobile学习记录一
安装 做页面之前首先引用三个文件: <link href="/Scripts/jquery.mobile-1.4.5/jquery.mobile-1.4.5.css" rel ...
- spring 整合 mybatis 中数据源的几种配置方式
因为spring 整合mybatis的过程中, 有好几种整合方式,尤其是数据源那块,经常看到不一样的配置方式,总感觉有点乱,所以今天有空总结下. 一.采用org.mybatis.spring.mapp ...
- 安装VirtualBox后 不能选择64bit的系统
之前在台式机上安装VirtualBox,一切OK,能够安装64位的任何版本iso包今天在hp笔记本上安装,安装VirtualBox完毕后,只能选择32位的iso版本. 而我目前只有一个linux64b ...