探究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(被暂停的)。

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

  1. Android应用程序中Activity的生命周期

    Android应用程序中Activity的生命周期 对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的 ...

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

        转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:JohnTsai.Work@gmail.com       [Andro ...

  3. Android开发艺术1之Activity的生命周期

    作为<Android开发艺术探索>这本书的第一篇博客,我就多说几句.本系列博客旨在对书中相关内容进行解读,简化,提供一个入门到提高的流程.不敢说书评,也不能说教程,只希望对有些人有帮助就好 ...

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

    要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...

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

    分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为 ...

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

    为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: private List ...

  7. 第三章:Activity的生命周期

    一:Activity的生命周期方法 Android提供了很多Activity的生命周期方法,比如我们常用的onCreate.onPause.onResume等.这里主要介绍粗粒度的周期方法,诸如onP ...

  8. Android开发艺术探索读书笔记——01 Activity的生命周期

    http://www.cnblogs.com/csonezp/p/5121142.html 新买了一本书,<Android开发艺术探索>.这本书算是一本进阶书籍,适合有一定安卓开发基础,做 ...

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

    Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...

随机推荐

  1. Java基础:HashMap假死锁问题的测试、分析和总结

    前言 前两天在公司的内部博客看到一个同事分享的线上服务挂掉CPU100%的文章,让我联想到HashMap在不恰当使用情况下的死循环问题,这里做个整理和总结,也顺便复习下HashMap. 直接上测试代码 ...

  2. HTTPS 站点的性能优化

    HTTPS 站中的几大难题 性能,包括: HTTPS需要多次握手,因此网络耗时变长,用户从HTTP跳转到HTTPS需要一些时间: HTTPS要做RSA校验,这会影响到设备性能: 所有CDN节点要支持H ...

  3. 预防sql注入

    前言: 这两天做项目的时候发现很多小地方没有注意js或者sql注入,平时登录都是md5加密,今天突然发现记录一下. 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字 ...

  4. Tomcat安装教程

    Tomcat安装教程 文档下载:https://files-cdn.cnblogs.com/files/yocichen/Tomcat安装教程.rar 注意:本教程适用Windows平台安装Tomca ...

  5. 测者的测试技术手册:揭开java method的一个秘密--巨型函数

    揭开java method的一个秘密:巨型函数 相信,很多人都不知道Java的Method的上限为64K.本文将超过这个上限的函数叫做巨型函数. 巨型函数的问题 1.如果代码超过了这个限制,Java编 ...

  6. 如何在MongoDB设计存储你的数据(JSON化)?

    第一步 定义要描述的数据集 当我们决定将数据存储下来的时候,我们首先要回答的一个问题就是:“我打算存储什么样的数据?这些数据之间有什么关系?实体之间有什么关系?实体的属性之间有什么关系”. 为了说明问 ...

  7. C#中FormsAuthentication用法实例

    ....本文纯属抄袭....   using System; using System.Web; using System.Web.Security;   namespace AuthTest {   ...

  8. 启动期间的内存管理之引导分配器bootmem--Linux内存管理(十)

    在内存管理的上下文中, 初始化(initialization)可以有多种含义. 在许多CPU上, 必须显式设置适用于Linux内核的内存模型. 例如在x86_32上需要切换到保护模式, 然后内核才能检 ...

  9. SQLServer之创建全文索引

    创建全文索引的必须条件 必须具有全文目录,然后才能创建全文索引. 目录是包含一个或多个全文索引的虚拟容器. 使用SSMS数据库管理工具创建全文索引 1.连接数据库,选择数据库,选择数据表->右键 ...

  10. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...