Android Activity 生命周期的透彻理解

Android 四大组件之Activity Activity 是安卓四大组件之一,也是最常用最重要的组件。 四大组件:Activity、Service、Content provider、Broadcast Receiver。 通常一个Activity表示的就是一屏(也就是App的某个界面)。Activity 相当于MVC模式中的Controller,它用来管理数据与View的联系,以及View的交互行为处理。 与iOS 中的UIViewCo... 阅读详情

说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity的生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity的生命周期的理解还不透彻啊。
     既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂。

     首先看看android developers 网上的activity的生命周期图:

      activity启动的时候:onCreate ---> onStart ---> onResume 这个过程不用多说,大家都知道。
这里主要讲讲: 何时onPause, 何时onStop,何时onDestory; 以及恢复的时候,何时onRestart,何时onResume。
为了方便说明这里把当前activity称为MainActivity,其他的activity称为SecondActivity、ThirdActivity等等。
通过上图的我们可以看出activity从running状态跳转到onPause状态的原因是:Another activity comes into the foreground. 也就是说有另外一个actvity被启动并运行了,比如说MainActivity通过startActivity启动了SecondActivity,那么SecondActivity就在ui视图的最顶层了,而MainActivity不再是最顶层的activity了,此时就会onPause了,此时我们依稀还能看到MainActivity,只是MainActivity已经站在他人之后了。

    而当MainActivity完全被SecondActivity挡住,完全看不见的时候,此时MainActivity就会onStop了。我们看看上图从onPause到onStop的原因是:the activity is no longer visiable. 也就是说此时MainActivity完全不可见了,从这里我们可以猜测当按下home键的时候,当前activity就会处于onStop的状态。
从actvitiy的生命周期图中,我们可以看出activity是可以停留在onPause和onStop在这两个状态上的,因为可以相应的恢复。

 

那么何时停留在onPause,何时停留在onStop呢?


下图的MainActivity就是处于onPause状态:



因为这里的second actvity是dialog样式:
<activity android:name=".SecondActivity" android:theme="@android:style/Theme.Dialog">
也就验证了当MainActivity不再在最顶端,但仍然可见的时候,MainActivity就处于onPause状态,此时如果退出(back键)second activity,那么MainActivity就会onResume。


下图的MainActivity就是处于onStop状态(注意,这里的third activity 是在 MainActivity中通过startActivity启动的):

 


因为此时MainActivity已经完完全全被Thrid actvity挡住了,完全不可见了,所以MainActivity处于onStop状态,如果此时退出Thrid activity(back键),那么MainActivity就会onRestart().


何时onDestory呢?
当在MainActivity中按back键,退出时,最终就会走到onDestory,或者在代码中调用finish()的时候也会走到onDestroy这一步。

 


对于activity生命周期图的左侧部分:



当MainActivity处于onPause和onStop状态时,当更高优先级的apps需要内存,而此时系统内存不够了,那么android系统就会将MainActivity所在的进程给杀了以释放资源。
当然被杀了之后,想重生,那必须得从头来过: onCreate ---> onStart() ---> onResume().

activity生命周期(这篇足够了) activity生命周期(这篇足够了) 摘要 做安卓开发已经4年多了,所接触的知识点也比较零散,在这里记录一下android方面的知识点,方便自己以后复习,有什么不足的,以及错误的欢迎拍砖。 activity activity从开始到结束的四个状态。 activity生命周期activity的进程优先级。 activity的四个状态 关于activity的... 阅读详情

相关推荐

Android开发——Activity生命周期

Android开发—-Activity生命周期Activity作为四大组件之首,也是使用最频繁的一种组件。本文将主要讲解Activity生命周期,包括正常情况下的Activity生命周期和异常情况下的Activity生命周期。1. 正常情况下的Activity生命周期所谓正常情况下的生命周期,是指有用户参与的情况下,Activity所经过的生命周期的改变。正常情况下,Activity会经历如下过程。...

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭ 2万+

透彻理解androidActivity生命周期

androidActivity生命周期顺序为:onCreate,onStart,onResume,onPause,onStop,onRestart,onDestory 为了透彻理解我新建了一个android工程,工程包含两个activity(分别为A,B),通过log打印操作过程中Activity的生命过程。 操作过程为:启动应用程序,默认打开A,A中通过startActivity打开B,打

码农笔记 816

Android ActivityActivity生命周期

onCreate:表示Activity正在被创建。生命周期的第一个方法,当打开一个activity时首先回调这个方法。在这个方法中一般做一些初始化工作,例如加载界面布局资源(setContentView)、数据初始化(findviewbyid)onRestart: 表示Activity正在被重新启动。当前activity从不可见变为可见状态时这个方法就会回调。

dev晴天的博客 1万+

android activity生命周期透彻理解

说来惭愧,虽然已经做了一年多的android开发,但是最近被人问起activity生命周期的时候,却感觉自己并不能很自信很确定的回答对方的问题,对activity生命周期理解还不透彻啊。      既然发现了问题,那咱就得解决问题,不就个生命周期,能有多复杂。      首先看看android developers 网上的activity生命周期图:       activi

968
上一篇: 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputS
下一篇: Android在View中的动画
namecyf
博客等级 码龄24年 127粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值