《Android生命周期》ppt课件_第1页
《Android生命周期》ppt课件_第2页
《Android生命周期》ppt课件_第3页
《Android生命周期》ppt课件_第4页
《Android生命周期》ppt课件_第5页
已阅读5页,还剩43页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 Android生命周期生命周期本章学习目的:n 了解Android系统的进程优先级的变化方式n 了解Android系统的四大根本组件n 了解Activity的生命周期中各形状的变化关系n 掌握Activity事件回调函数的作用和调用顺序n 掌握Android运用程序的调试方法和工具4.1 程序生命周期nAndroid系统进程优先级从高到低分别为:n前台进程n可见进程n效力进程n后台进程n空进程4.1 程序生命周期n前台进程n前台进程最重要n进程中的Activity正在与用户进展交互;nService被Activity调用,而且这个Activity正在与用户进展交互;nService

2、在执行声明周期中的回调函数,如onCreate()、onStart()或onDestroy()n进程的BroadcastReceiver正在执行onReceive()函数;4.1 程序生命周期n可见进程n可见进程指部分程序界面可以被用户看见,却不在前台与用户交互,不呼应界面事件的进程n假设一个进程包含Service,且这个Service正在被用户可见的Activity调用,此进程同样被视为可见进程n效力进程n包含已启动效力的进程nAndroid系统除非不能保证前台进程或可视进程所必要的资源,否那么不强行去除效力进程4.1 程序生命周期n后台进程n指不包含任何曾经启动的效力,而且没有任何用户可见

3、的Activity的进程nAndroid系统中普通存在数量较多的后台进程n空进程n空进程是不包含任何活泼组件的进程n优先级决议与变化规那么n优先级取决于一切组件中优先级最高的部分n进程优先级根据与其他进程的依赖关系而变化4.2 Android组件n四大组件 调用的根本模块nActivitynAndroid程序的呈现层,显示可视化的用户界面,并接纳与用户交互所产生的界面事件nAndroid运用程序可以包含一个或多个Activity,普通需求指定一个程序启动时显示的ActivitynServicenService普通用于没有用户界面,但需求长时间在后台运转的运用n可公开Service的程序接口,供

4、其他进程调用4.2 Android组件n四大组件 调用的根本模块nBroadcaseReceivern用来接纳广播音讯的组件,不包含任何用户界面n可以启动Activity或者Notification通知用户接纳到重要信息nNotification经过多种方法提示用户:背景灯闪烁、震动、声音或在形状栏上放置图标nContentProvidernAndroid系统提供的一种共享数据的机制,其他程序经过ContentProvider访问程序的私有数据 nAndroid系统内置的ContentProvider,可以为运用程序提供重要的数据信息n联络人信息n通话记录4.2 Android组件n组件生命周

5、期n一切Android组件都具有本人的生命周期,是从组件建立到组件销毁的整个过程n在生命周期中,组件会在可见、不可见、活动、非活动等形状中不断变化4.3 Activityn什么是Activity4.3 Activity生命周期nActivity生命周期nActivity生命周期指Activity从启动到销毁的过程nActivity表现为四种形状n活动形状:Activity在用户界面中处于最上层,完全能不用户看到,可以与用户进展交互n暂停形状:Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不可以与用户进展交互n停顿形状:Activity在界面上完全不能被用户看

6、到,也就是说这个Activity被其他Activity全部遮挡n非活动形状:不在以上三种形状中的Activity那么处于非活动形状4.3 Activity生命周期nActivity的四种形状的变换关系图4.3 Activity生命周期nActivity栈:遵照“后进先出的规那么4.3 Activity生命周期n随着Activity本身形状的变化,Android系统会调用不同的事件回调函数 nActivity的主要事件回调函数 public class MyActivity extends Activity protected void onCreate(Bundle savedInstance

7、State); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); 4.3 Activity生命周期nActivity生命周期的事件回调函数 函数函数阐明阐明onCreate()Activity启动后第一个被调用的函数,常用来进展Activity的初始化,例如创建View、绑定数据或恢复信息等。onStart()当Activity

8、显示在屏幕上时,该函数被调用。onRestart()当Activity从停顿形状进入活动形状前,调用该函数。onResume() 当Activity可以接受用户输入时,该函数被调用。onPause()当Activity进入暂停形状,该函数被调用。主要用来保管耐久数据、封锁动画、释放CPU资源等。该函数中的代码必需简短,由于另一个Activity必需等待该函数执行终了后才干显示在界面上。onStop()当Activity不对用户可见后,该函数被调用,Activity进入停顿形状。onDestroy() 在Activity被终止前,即进入非活动形状前,该函数被调用。有两种情况该函数会被调用:(1)

9、当程序自动调用finish()函数;(2)程序被Android系统终结。4.3 Activity生命周期nonRestoreInstanceState()和onSaveInstanceState()n不属于生命周期的事件回调函数,但可以用于保管和恢复Activity的界面暂时信息nonSaveInstanceState()会将界面暂时信息保管在Bundle中,onCreate()和onRestoreInstanceState()都可以恢复这些保管的信息n简化的方法是运用onCreate() 恢复,但有些特殊的情况下还是需求运用onRestoreInstanceState()函数恢复n必需在界面

10、完全初始化终了后才干进展的操作n或需求由子类来确定能否采用缺省设置等函数函数阐明阐明onSaveInstanceState()onSaveInstanceState()暂停或停顿暂停或停顿ActivityActivity前调用该函数,用以保管前调用该函数,用以保管ActivityActivity的暂时形状信息的暂时形状信息onRestoreInstanceState()onRestoreInstanceState() 恢复恢复onSaveInstanceState()保管的保管的Activity形状信形状信息。息。4.3 Activity生命周期nActivity事件回调函数的调用顺序nAct

11、ivity生命周期分类nActivity的生命周期可分为全生命周期、可视生命周期和活动生命周期n每种生命周期中包含不同的事件回调函数4.3 Activity生命周期n全生命周期n全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),终了于onDestroy()n运用者通常在onCreate()中初始化Activity所能运用的全局资源和形状,并在onDestroy()中释放这些资源n在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程4.3 Activity生命周期n可视生命周期n可视生命周期是Activity在界面上从可见到不可见的

12、过程,开场于onStart(),终了于onStop()4.3 Activity生命周期n可视生命周期nonStart()n普通用来初始化或启动与更新界面相关的资源nonStop()n普通用来暂停或停顿一切与更新用户界面相关的线程、计时器和效力nonRestart()n函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进展一些特定的处置过程nonStart()和onStop()会被多次调用4.3 Activity生命周期n活动生命周期n活动生命周期是Activity在屏幕的最上层,并可以与用户交互的阶段,开场于onResume(),终了于onPause()n在Act

13、ivity的形状变换过程中onResume()和onPause()经常被调用,因此这两个函数中应运用更为简单、高效的代码4.3 Activity生命周期nonPause()和onSaveInstanceState()n这两个函数都可以用来保管界面的用户输入数据nonPause()普通用于保管耐久性数据,并将数据保管在存储设备上的文件系统或数据库系统中的nonSaveInstanceState()主要用来保管动态的形状信息,信息普通保管在Bundle中nBundle是可以保管多种格式数据的对象,系统在调用onRestoreInstanceState()和onCreate()时,会同样利用Bund

14、le将数据传送给函数4.3 Activity生命周期nLOG类:日志的输出nGenerally, use the Log.v() Log.d() Log.i() Log.w() and Log.e() methods. LOG类:日志的输出npublic static int i (String tag, String msg) nAdded in API level 1Send a INFO log message and log the exception.nParametersntag Used to identify the source of a log message. It us

15、ually identifies the class or activity where the log call occurs. nmsg The message you would like logged. 4.3 Activity生命周期n活动生命周期n下面以ActivityLifeCycle例如来进展阐明,ActivityLifeCycle例如的运转界面4.3 Activity生命周期nActivityLifeCycleActivity.java文件P62 private static String TAG = LIFTCYCLE; Override /完全生命周期开场时被调用,初始化

16、Activity public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, (1) onCreate(); Override /可视生命周期开场时被调用,对用户界面进展必要的更改 public void onStart() super.onStart(); Log.i(TAG, (2) onStart(); 4.3 Activity生命周期 Override /在在onStart()后被调用,恢复后被调

17、用,恢复onSaveInstanceState()保管的保管的用户界面信息用户界面信息 public void onRestoreInstanceState(Bundle savedInstanceState) super.onRestoreInstanceState(savedInstanceState); Log.i(TAG, (3) onRestoreInstanceState(); Override /在活动生命周期开场时被调用,恢复被在活动生命周期开场时被调用,恢复被onPause()停顿的停顿的用于界面更新的资源用于界面更新的资源 public void onResume() su

18、per.onResume(); Log.i(TAG, (4) onResume(); 33. 4.3 Activity生命周期 Override / 在在onResume()后被调用,保管界面信息后被调用,保管界面信息 public void onSaveInstanceState(Bundle savedInstanceState) super.onSaveInstanceState(savedInstanceState); Log.i(TAG, (5) onSaveInstanceState(); Override /在重新进入可视生命周期前被调用,载入在重新进入可视生命周期前被调用,载入

19、界面所需求的更改信息界面所需求的更改信息 public void onRestart() super.onRestart(); Log.i(TAG, (6) onRestart(); 4.3 Activity生命周期nActivityLifeCycle.java文件的代码 Override /在活动生命周期终了时被调用,用来保管耐久的数据或释放占用的资源 public void onPause() super.onPause(); Log.i(TAG, “(7) onPause(); Override /在可视生命周期终了时被调用,普通用来保管耐久的数据或释放占用的资源public void

20、onStop() super.onStop(); Log.i(TAG, (8) onStop(); 4.3 Activity生命周期nActivityLifeCycle.java文件的代码n经过在生命周期函数中添加“日志点的方法调试,程序的运转结果显示在LogCat中n为了显示结果易于察看和分析,在LogCat设置过滤器LifeCycleFilter Override /在完全生命周期终了时被调用,释放资源,包括线程、数据衔接等 public void onDestroy() super.onDestroy(); Log.i(TAG, (9) onDestroy(); 4.3 Activity

21、生命周期n全生命周期n启动和封锁ActivityLifeCycle 的LogCat输出n启动ActivityLifeCyclen按下模拟器的“前往键n封锁ActivityLifeCyclenLogCat输出结果4.3 Activity生命周期n全生命周期n函数的调用顺序:n(1)onCreate (2)onStart (4)onResume n(7)onPause (8)onStop (9)onDestroy。4.3 Activity生命周期n可视生命周期n形状转换n启动ActivityLifeCyclen按“呼出/接听键启动内置的拨号程序n再经过“前往键退出拨号程序nActivityLife

22、Cycle重新显示在屏幕中n可视生命周期的LogCat输出结果4.3 Activity生命周期n可视生命周期n函数的调用顺序:n (1)onCreate (2)onStart (4)onResume n (7)onPause (5)onSaveInstanceState (8)onStop n (6)onRestart (2)onStart (4)onResume4.3 Activity生命周期n可视生命周期n开启IDA的可视生命周期:Dev Tools Development Settings Immediately destroy activities (IDA)下开启IDA4.4 程序调

23、试nAndroid系统提供了两种调试工具LogCat和DevTools,用于定位、分析及修复程序中出现的错误n LogCatnLogCat是用来获取系统日志信息的工具,并可以显示在Eclipse集成开发环境中n功能:可以捕获的信息包括Dalvik虚拟机产生的信息、进程信息、ActivityManager信息、PackagerManager信息、Homeloader 信息、WindowsManager信息、Android运转时信息和运用程序信息等4.4 程序调试n4.4.1 LogCatn翻开方式:Window Show View Othern翻开Show View的选择菜单,然后在Andoir

24、d LogCat中选择LogCat4.4 程序调试n4.4.1 LogCatnLogCat翻开后,便显示在Eclipse的下方区域4.4 程序调试n4.4.1 LogCatnLogCat的右上方的五个字母表示五种不同类型的日志信息 ,级别依次增高 nV:详细Verbose信息 D:调试Debug信息nI:通告Info信息 W:警告Warn信息 nE :错误Error信息4.4 程序调试n4.4.1 LogCatnLogCat提供了“过滤功能n在右上角的“+号和“-号,分别是添加和删除过滤器。用户可以根据日志信息的标签Tag、产生日志的进程编号Pid或信息等级Level,对显示的日志内容进展过滤4.4 程序调试n4.4.1 LogCatn程序调试原理n引入android.util.Log包n运用Log.v()、 Log.d()、 Log.i() 、Log.w() 和 Log.e()五个函数在程序中设置“日志点n当程序运转到“日志点时,运用程序的日志信息便被发送到LogCat中,判别“日志点信息与预期的内容能否一致,进而判别程序能否存在错误4.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论