`
wangym
  • 浏览: 123227 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Activity生命周期概述

阅读更多

 

 

1、Activity的整个生命周期如上图呈金字塔状:当创建一个Activity新实例时从图左侧的onCreate()事件开始逐渐向顶端走,当到达最顶端的Resumed状态时便已到可与用户进行交互的状态,而当用户离开Activity或被中断时,Activity状态开始往图右侧的底端走;

 

2、一旦onCreate()方法执行完毕,会迅速执行onStart()和onResume(),Activity不会停留在Created或Started状态,但当onResume()事件被发生后,Activity会一直维持在Resumed状态直到一些事情发生(如退出或被半或全遮挡);

 

3、在某些情况下,Activity只会往图右侧的底端走一两步并在该处等待,这些情况如当前的Activity被半遮挡时会被onPause()并等待在Paused,再如被全遮挡时会被onStop()并等待在Stopped,返回Activity时则从当前等待处重新绕回最顶端;

 

4、无论任何原因使Activity停止或退出,onPause()总是第一个信号,且总是会在onStop()之前,而一旦Activity停止后,系统就有可能会自动销毁Activity实例以回收内存,甚至会不执行onDestory()而直接杀死应用的进程,因此用onPause()和onStop()来释放内存更为可靠;

 

5、当发生onPause()或onStop()时应注意保存用户数据,也应该销毁一些耗电操作等以增强用户体检,如拍摄类应用在发生onStop()时可停止Camera,当恢复时如在onResume()中再启用Camera;

 

6、通过onRestoreInstanceState()和onSaveInstanceState()这两个事件可以将数据保存在Bundle中,以应对Activity被操作系统销毁及再恢复时的状态回滚,onRestoreInstanceState()发生在onResume()事件之前,onSaveInstanceState()发生在onResume()事件之后。

 

总之,正确使用Activity生命周期可保障应用程序有良好的表现,必须注意如下几个方面

当用户接听电话或者转去另外一个应用程序时,不要让程序崩溃;

当用户没有激活使用它时,不消耗宝贵的系统资源;

当用户离开你的应用程序并在稍后的时间返回,不会丢失用户的进度;

当用户屏幕在横向与纵向旋转切换时,不会崩溃或者丢失用户进度。

 

  • 大小: 67.7 KB
分享到:
评论

相关推荐

    Android中的Activity生命周期总结

    Activity生命周期一般分为四个基本状态,分别是活动状态(running),暂停状态(paused),停止状态(stopped)和死亡状态。 1.活动状态(running) 活动状态一般是指该Activity正处于屏幕最显著的位置上显示,即该Activity...

    详解Activity生命周期

    详解Activity生命周期一、概述1.方法简述2.三种周期二、生命周期中涉及到的其他方法1.onSaveInstanceState() 方法2.onBackPressed()方法三、四条生命线Line 1 onCreate() → onDestroy() 完整生命周期Line 2 onStart...

    AndroidX Fragment探究-生命周期

    Fragment的生命周期依托FragmentActivity管理调度,在FragmentActivity的各个生命周期方法回调中,会将对应生命状态派发给依附于FragmentActivity的所有Fragment。 图1.Fragment 生命周期 源码探究 文中源码基于’...

    android 开发技巧合集

    2.1.2、Activity的生命周期 15 2.1.3、Activity 的创建 16 2.1.4、Activity 的跳转(含Bundle传值) 17 2.1.5.Actvity 堆栈 18 2.1.6、Intent对象调用Activity实例 19 2.1.7、Activity透明 21 2.1.8、一次性关闭...

    《Android视频教程》概述 Android视频教程简介

    普及android开发知识,全教程分八部分: 第一讲Android系统简介 第二讲建立Android开发环境 第三讲第一个Android应用 第四讲Android程序基础 ...第六讲Activity生命周期 第七讲使用Service 第八讲Content Provider

    Android Fragment概述及用法

    Fragment一般是宿主Activity UI的一部分或一种行为,作为Activity的整个View Hierarchy的一部分嵌入。... Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity

    Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】

    你可以把Fragment认为模块化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。 Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的...

    Android基础最全题库-这份文档是一个关于Android基础知识的题库,包含了Android概述、UI开发、

    4. 第三章详细讲解了Activity的生命周期、启动模式、任务栈等重要概念。 5. 第四章介绍了几种数据存储方式,如文件、SharedPreferences、SQLite数据库等。 6. 第五章进阶讲解了ListView的使用、BaseAdapter自定义...

    android学习文档

    2、Activity生命周期及其实例分析 24 1.1 Avtivity介绍 24 1.2 Activity的生命周期 25 1.2.1 Activity的三种状态 25 1.2.2 Activity在三种状态切换时调用的方法(7种) 25 1.2.3 Activity跳转与布局管理器 27 1.2.4 ...

    Android开发与应用——张荣,原书配套课件

    3.5.2 Activity生命周期 3.6 Intent简介 3.6.1 Intent属性与过滤器 3.6.2 Intent启动系统Activity 3.7 小结 练习 第4章 视图组件 4.1 视图组件的使用模式 4.1.1 视图组件的定义 4.1.2 资源的访问 ...

    Android应用UI开发中Fragment的常见用法小结

    一个Fragment对象必须被嵌入在一个主Activity对象中,该Fragment的生命周期与主Activity息息相关。比如,当主Activity处于paused状态,其对应的所有Fragment对象均处于paused状态,只有当主Activity处于resumed状态...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    第1章 Activity的生命周期和启动模式 1 1.1 Activity的生命周期全面分析 1 1.1.1 典型情况下的生命周期分析 2 1.1.2 异常情况下的生命周期分析 8 1.2 Activity的启动模式 16 1.2.1 Activity的LaunchMode 16 ...

    Android开发艺术探索

    第1章 Activity的生命周期和启动模式 / 1  1.1 Activity的生命周期全面分析 / 1  1.1.1 典型情况下的生命周期分析 / 2  1.1.2 异常情况下的生命周期分析 / 8  1.2 Activity的启动模式 / 16  1.2.1 Activity的...

    Android 代码分析

    30.1 Activity的生命周期 113 30.2 让Activity变成一个窗口:Activity属性设定 114 30.3 你后台的Activity被系统回收怎么办:onSaveInstanceState 115 30.4 调用与被调用:我们的通信使者Intent 116 31 编译Native C...

    android开发艺术探索高清完整版PDF

    目录 第1章 Activity的生命周期和启动模式 / 1 1.1 Activity的生命周期全面分析 / 1 1.1.1 典型情况下的生命周期分析 / 2 1.1.2 异常情况下的生命周期分析 / 8 1.2 Activity的启动模式 / 16 1.2.1 Activity的...

    Android通过startService播放背景音乐

    关于startService的基本使用概述及其生命周期可参见《Android中startService基本使用方法概述》。 本文通过播放背景音乐的简单示例,演示startService的基本使用流程,具体内容如下 系统界面如下: 界面上面就两...

    Android开发案例驱动教程 配套代码

    9.1.2 Activity生命周期 180 9.2 Intent 183 9.2.1 显式Intent 184 9.2.2 隐式Intent 186 9.2.3 匹配组件 186 9.3 多Activity之间跳转 188 9.3.1 多个Activity之间数据传递 189 9.3.2 跳转与返回 192 9.3.3 ...

Global site tag (gtag.js) - Google Analytics