Android艺术——深看Activity的生命周期

探究Activity的生命周期

1.典型情况下的生命周期分析:onCreate 初始化工作,加载布局资源和数据;onStart ac正在启动但是无法交互,后台;onResume ac可见,显示在前台;onPause 正在停止,必须先执行完才能执行新的ac;Onstop 即将停止,回收工作;onDestory 即将销毁,回收与资源释放;onRestart 重新启动

2.onStart和onResume、onPause和onStop,有什么实质的不同。

答:onStart和onResume是从Activity是否可见这个角度来回调的;后者是从Activity是否位于前台这角度来回调的。

3.在新Activity启动之前,栈顶的Activity需要先onPause后,新Activity才能启动。不能在onPause中做重量级的操作,因为必须onPause执行完成以后新的Activity才能Resume。所以:我们知道onPause和onStop都不能执行耗时的操作,尤其是onPause,这也意味着,我们应当尽量在onStop中做操作,从而使得新Activity尽快显示出来并切换到前台

4.异常情况下的生命周期分析

  1. )情况1:资源相关的系统配置发生改变导致Activity被杀死并且重新创建

    1. 例子:当前Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生改变,默认情况下Activity就好被销毁并且重新创建。
    2. 在这种意外情况下,系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法只在异常终止的情况下出现,当新的Activity被创建后,系统会调用onRestoreInstanceState取出之前保存的数据并且恢复。从时序上来说,onRestoreInstanceState的调用时机在onStart之后。
    3. 和Activity一样,每个View都有S和R,都是通过委托思想,上层委托下层,例如TextView会保存自己的文本选中状态和文本内容。
  2. )资源内存不足导致低优先的Activity被杀死

1.比较好的方法是将后台工作放在Service中从而保证进程有一定的优先级。

2.Activity按照优先级来分:前台Activity(正在和用户交互)>可见但非前台Activity(弹出对话框后,不能直接交互)>后台Activity(被暂停的)。

时间: 2024-08-11 07:40:07

Android艺术——深看Activity的生命周期的相关文章

Android系列教程之Activity的生命周期

通过上一节"Android系列教程之Android项目的目录结构"我们已经知道了什么是Activity,那么为什么我们创建一个Activity的导出类的时候为什么都要覆盖Activity的onCreate方法呢,为什么会在onPause()方法中保存一些当前Activity中的变化,要弄明白这些就要先了解Activity的生命周期,也就是一个Activity才开始到结束都要经过那些状态,下面通过一个例子了解Activity的声明周期. 一:Activity的生命周期方法 Android

android学习四(Activity的生命周期)

要学好活动(Activity),就必须要了解android中Activity的声明周期,灵活的使用生命周期,可以开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈.栈的特性是后进先出,在默认的情况下,每当我们启动了一个新的活动,它会在返回栈中入栈,并处于栈顶的位置.而每当我们按下Back键或调用finish方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动就会重新处于栈顶的位置.系统总是会显示处于栈顶的活动给用户

【Android基础篇】Activity的生命周期

Google开发者文档 http://developer.android.com/reference/android/app/Activity.html 应用的每个页面都是一个Activity,这些Activity都存放在一个Activity栈中,每次进入某个应用或者应用的某个界面时,新界面这个Activity就压入到Activity栈的顶部:退出或返回的时候就把栈顶的Activity弹出,之前的Activity就又到了栈顶. Activity生命周期里的四个状态 - Running : Act

Android四大组件之——Activity的生命周期(图文详解)

上一篇文章讲了Activity的定义.状态和后退栈,现在讲讲Activity的重点和难点——Activity的生命周期. Activity生命周期的回调方法: //创建Activity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } //Activity快要变成可见的 @Override protected void onStart() { super.onStart(

【Android】11.1 Activity的生命周期和管理

分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为了专注于介绍某个知识点而有意忽略其他的实现细节,那就另当别论了. Android应用程序可自动创建.暂停.恢复.销毁Activity,下图是典型的Activity生命周期(虽然不同资料画的图不一样,但殊途同归,目的都是为了帮助理解): 要创建一个自定义的Activity,必须创建一个父类为Activ

Android四大组件之Activity的生命周期

Activity作为Android程序中的四大组件之一,它和大部分的组件一样都是有自己的生命周期,而Activity的生命周期总的分为五种状态以及七个方法! 只大致讲 五种状态 和 七个方法 五种状态: 在Activity生命周期即从创建到销毁全过程中,分为五种状态分为启动.运行.暂停.停止和销毁. 需要注意的是:Activity活动时不会在 启动 和 销毁 这两种状态下停留下来有活动,因为这两种状态作为Activity活动的过渡状态.所以在Activity触发启动操作之后马上就会进入运行状态不

朝花夕拾-android 自定义application 管理activity的生命周期

为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: 1 private List<Activity> activityList = new LinkedList<Activity>(); 2 3 // 保存 所有activity的this 4 public void addActivity(Activity activity) { 5 activityList

第三章:Activity的生命周期

一:Activity的生命周期方法 Android提供了很多Activity的生命周期方法,比如我们常用的onCreate.onPause.onResume等.这里主要介绍粗粒度的周期方法,诸如onPostCreate.onPostResume等 这些细粒度的周期方法可以参考Android的API文档,在你需要更细层次的控制的时候可以使用这些细粒度的方法.粗粒度的周期方法有以下几个: onCreate().onStart().onResume().onPause().onStop().onDes

Android开发艺术探索——第一章:Activity的生命周期和启动模式

Android开发艺术探索--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activity搬上来了,也确实,和Activity打交道的次数基本上是最多的,而且他的内容和知识点也是很多的,非常值得我们优先把他掌握,Activity中文翻译过来就是"活动"的意思,但是主席觉得这样翻译有些生硬,直接翻译成"界面"可能更好,的确,Activity主要也是用于UI效