android学习笔记--activity生命周期

原创 2016年05月31日 18:54:47

activity生命周期

            最近再看《android开发艺术探索》,记录一下自己的学习过程

一.典型情况下的生命周期:

   

            

1.activity首次启动时,回调如下:onCreate –> onStart –> onResume

 

2.当打开新的Activity或切换到桌面时,回调如下:onPause –> onStop

 

3.当再次回到Activity时,回调如下:onRestart –> onStart –> onResume

 

4.当按下back键时,回调如下:onPause –> onStop –>onDestory

 

5.当启动一个新Activity时,旧ActivityonPause方法会先执行,然后才会启动新的Activity

 

二.异常状态下的生命周期:

当资源相关的系统配置发生改变以及系统内存不足时,可能会导致Activity被杀死。Activity被杀死之前会回调onSaveInstanceState方法,这个方法会在onStop方法之前调用,和onPause方法没有时序关系。

Activity被重建时,系统会调用onRestoreInstanceState方法,这个方法是在onStart方法之后。

当系统配置发生改变后,如Activity由竖屏变成横屏时,Activity会被重新创建,如果不想重建,需要在AndroidManifest.xml中设置android:configChanges="orientation|screenSize“

这时Activity不会被重建,也不会调用onSaveInstanceState方法和onRestoreInstanceState方法,取而代之的是系统会调用onConfigurationChanged方法。

系统配置所含的项目

项目

含义

mcc

IMSI移动台的国家代码(MCC)发生变化——一个SIM被探测到并且更新MCC

mnc

IMSI移动台的网络代码(MNC)发生变化——一个SIM被探测到并且更新MNC

locale

设备的本地位置发生改变——一般指切换了系统语言

touchscreen

触摸屏发生变化(通常不会发生。)

keyboard

键盘类型发生变化——例如:用户插入了外接键盘。

keyboardHidden

键盘的可访问性发生变化——例如:用户发现了硬件键盘。

navigation

导航类型(轨迹球或dpad)发生变化。(通常不会发生。)

screenLayout

屏幕布局发生变化——这个会导致显示不同的Activity

fontScale

字体缩放因子发生变化——用户选择了新的字体大小。

uiMode

UI模式发生改变的时候——当用户放置设备到桌子或/汽车或夜间模式改变的时候可以引起UI模式变化。阅读UiModeManager。在API级别8时引入。

orientation

屏幕方向发生变化——用户旋转了屏幕。注意:如果应用程序的目标API级别是13或更高(通过属性minSdkVersion和属性targetSdkVersion声明),你也需要声明配置项screenSize,因为这将在设备选择肖像和屏幕方向时发生改变。

screenSize

当前可用屏幕大小发生变化。这代表一个当前可用大小的变化,和当前的比率相关,因此当用户选择不同的画面和图像,会发生变化。然而,如果你的程序目标API级别是12或更低,你的Activity总是会自己处理这个配置变化(这个变化不会引起Activity的重启,甚至在Android 3.2或更新的设备上)。在API级别13里加入的。

smallestScreenSize

物理屏幕大小的变化。不管方向的变化,仅仅在实际物理屏幕打包变化的时候,如:外接显示器。这个配置项的变化引起在smallestWidth configuration里的变化。然而,如果你的程序目标API级别低于13时,activity将不会重启,否则会重启activity(在API13新添加

layoutDirection

布局方向变化。例如书写方式从左向右(LTR)转换为从右向左(RTL

 

用Visual C++开发数据库应用程序

用Visual C++开发数据库应用程序EMAIL:zzh1415@21cn.com1、 概述1、1 Visual C++开发数据库技术的特点Visual C++提供了多种多样的数据库访问技术——OD...
  • zzh
  • zzh
  • 2000-08-09 17:04:00
  • 1008

activity生命周期

  • 2014年08月10日 19:52
  • 1.16MB
  • 下载

android学习笔记

  • 2011年06月20日 23:00
  • 131KB
  • 下载

Activity生命周期交互设计思想和应用场景(附源码)

Activity生命周期交互设计思想 1.在多个Activity进行交互的时候,为什么要先暂停(onPause()方法)当前的Activity,执行新的Activity的onCreate()方法...
  • u014225510
  • u014225510
  • 2015-08-02 15:31:05
  • 742

Android 四大组件之---Activity 详解

Android Activity生命周期详解 1. 什么是Activity? Activity作为Android四大组件之一,它有着举足轻重的地位,每一个Activity都会获得一...
  • u010784887
  • u010784887
  • 2016-06-14 11:02:18
  • 534

Android 监听各个Acitivity的生命周期

Android Application 监听Activity生命周期
  • csm_qz
  • csm_qz
  • 2016-03-21 15:23:32
  • 850

Android面试(Activity生命周期)

Activity作为Android的四大组件之一,是我们Android开发中打交道最为频繁的组件之一。而我们实际运用中却没有注意到很多Activity的细节知识点。所以在面试之中如果Activity相...
  • VickyWinner
  • VickyWinner
  • 2017-08-16 21:46:47
  • 325

Android:Activity——生命周期深入详解

一、生命周期全面分析Android活动默认运行在当前进程所拥有的栈中,前台可见的活动则在活动栈的最顶部。其他后台活动则在栈的里面,在正常的情况下(内存充足)其他的活动并没有被回收或者杀死,它们仍然存在...
  • woshimalingyi
  • woshimalingyi
  • 2016-03-23 13:34:08
  • 6788

Android说明Activity生命周期的代码例子

  • 2016年05月17日 09:24
  • 1.99MB
  • 下载

详谈Activity生命周期函数调用时机

再谈Activity生命周期(详细)@(Android基础)[Android全程实录读书笔记]Activity的3中状态: 激活: 完全显示在界面上, 并且有焦点, 即正在与用户交互 暂停: 不完全显...
  • u013647382
  • u013647382
  • 2016-07-14 13:02:21
  • 866
收藏助手
不良信息举报
您举报文章:android学习笔记--activity生命周期
举报原因:
原因补充:

(最多只允许输入30个字)