Android生命周期总结.ppt
《Android生命周期总结.ppt》由会员分享,可在线阅读,更多相关《Android生命周期总结.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章学习目标:n了解Android系统的四大基本组件n了解Android系统的进程优先级的变化方式n 了解Activity的生命周期中各状态的变化关系n 掌握Activity事件回调函数的作用和调用顺序n 掌握Android应用程序的调试方法和工具4.1 Android组件nAndroid系统四大组件 (调用的基本模块)qActivitynAndroid程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件nAndroid应用程序可以包含一个或多个Activity,一般需要指定一个程序启动时显示的ActivityqServicenService一般用于没有用户界面,但需要长时间在
2、后台运行的应用n可公开Service的程序接口,供其他进程调用4.1 Android组件nAndroid系统四大组件 (调用的基本模块)qBroadcaseReceivern用来接收广播消息的组件,不包含任何用户界面n可以启动Activity或者Notification通知用户接收到重要信息qNotification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个图标qContentProvidern是Android系统提供的一种标准的共享数据的机制,其他程序通过ContentProvider访问程序的私有数据 nAndroid系统内部提供一些内置的Conten
3、tProvider,能够为应用程序提供重要的数据信息q联系人信息q通话记录4.2 程序生命周期nAndroid系统的进程优先级从高到低分别为:q前台进程q可见进程q服务进程q后台进程q空进程4.2 程序生命周期n前台进程q前台进程是Android系统中最重要的进程n进程中的Activity正在与用户进行交互;nService被Activity调用,而且这个Activity正在与用户进行交互;nService正在执行声明周期中的回调函数,如onCreate()、onStart()或onDestroy();n进程的BroadcastReceiver正在执行onReceive()函数;4.2 程序生
4、命周期n可见进程q可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件的进程q如果一个进程包含Service,且这个Service正在被用户可见的Activity调用,此进程同样被视为可见进程n服务进程q包含已启动服务的进程qAndroid系统除非不能保证前台进程或可视进程所必要的资源,否则不强行清除服务进程4.2 程序生命周期n后台进程q指不包含任何已经启动的服务,而且没有任何用户可见的Activity的进程qAndroid系统中一般存在数量较多的后台进程n空进程q空进程是不包含任何活跃组件的进程4.2 程序生命周期n优先级决定与变化规则n进程的优先级取决于所有组件中的
5、优先级最高的部分n进程的优先级会根据与其他进程的依赖关系而变化4.3 Android组件n组件生命周期q所有Android组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程q在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化4.3 Activity生命周期nActivity生命周期qActivity生命周期指Activity从启动到销毁的过程qActivity表现为四种状态n活动状态,Activity在用户界面中处于最上层,完全能不用户看到,能够与用户进行交互n暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
6、n停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡n非活动状态,不在以上三种状态中的Activity则处于非活动状态4.3 Activity生命周期nActivity的四种状态的变换关系图4.3 Activity生命周期nActivity栈q遵循“后进先出”的规则4.3 Activity生命周期n随着Activity自身状态的变化,Android系统会调用不同的事件回调函数 nActivity的主要事件回调函数 public class MyActivity extends Activity protected void onCr
7、eate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); 4.3 Activity生命周期n函数qActivity生命周期的事件回调函数 函数函数是否是否可终止可终止说明说明onCreate()否Activity启动后第一个被调用的函数,常用来进行Activity的初始化
8、,例如创建View、绑定数据或恢复信息等。onStart()否当Activity显示在屏幕上时,该函数被调用。onRestart()否当Activity从停止状态进入活动状态前,调用该函数。onResume()否当Activity可以接受用户输入时,该函数被调用。onPause()否当Activity进入暂停状态时,该函数被调用。主要用来保存持久数据、关闭动画、释放CPU资源等。该函数中的代码必须简短,因为另一个Activity必须等待该函数执行完毕后才能显示在界面上。onStop()是当Activity不对用户可见后,该函数被调用,Activity进入停止状态。onDestroy()是在Ac
9、tivity被终止前,即进入非活动状态前,该函数被调用。有两种情况该函数会被调用:(1)当程序主动调用finish()函数;(2)程序被Android系统终结。4.3 Activity生命周期nonRestoreInstanceState()和onSaveInstanceState()q不属于生命周期的事件回调函数,但可以用于保存和恢复Activity的界面临时信息qonSaveInstanceState()会将界面临时信息保存在Bundle中,onCreate()和onRestoreInstanceState()都可以恢复这些保存的信息q简化的办法是使用onCreate() 恢复,但有些特殊
10、的情况下还是需要使用onRestoreInstanceState()函数恢复n必须在界面完全初始化完毕后才能进行的操作n或需要由子类来确定是否采用缺省设置等函数函数说明说明onSaveInstanceState()暂停或停止Activity前调用该函数,用以保存Activity的临时状态信息onRestoreInstanceState()恢复onSaveInstanceState()保存的Activity状态信息。4.3 Activity生命周期nActivity事件回调函数的调用顺序nActivity生命周期分类qActivity的生命周期可分为全生命周期、可视生命周期和活动生命周期q每种生
11、命周期中包含不同的事件回调函数4.3 Activity生命周期n全生命周期q全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()n使用者通常在onCreate()中初始化Activity所能使用的全局资源和状态,并在onDestroy()中释放这些资源n在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程4.3 Activity生命周期n可视生命周期q可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()4.3 Activity生命周期n可视生命周期q
12、onStart()n一般用来初始化或启动与更新界面相关的资源qonStop()n一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务qonRestart()n函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程qonStart()和onStop()会被多次调用4.3 Activity生命周期n活动生命周期q活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()q在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更
13、为简单、高效的代码4.3 Activity生命周期nonPause()和onSaveInstanceState()q这两个函数都可以用来保存界面的用户输入数据qonPause()一般用于保存持久性数据,并将数据保存在存储设备上的文件系统或数据库系统中的qonSaveInstanceState()主要用来保存动态的状态信息,信息一般保存在Bundle中nBundle是能够保存多种格式数据的对象,系统在调用onRestoreInstanceState()和onCreate()时,会同样利用Bundle将数据传递给函数4.3 Activity生命周期n活动生命周期q下面以ActivityLifeCy
14、cle示例来进行说明,ActivityLifeCycle示例的运行界面4.3 Activity生命周期nActivityLifeCycleActivity.java文件的全部代码 package edu.hrbeu.ActivityLifeCycle; import android.app.Activity;import android.os.Bundle;import android.util.Log; public class ActivityLifeCycle extends Activity private static String TAG = LIFTCYCLE; Override
15、 /完全生命周期开始时被调用,初始化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 /在onS
16、tart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息 public void onRestoreInstanceState(Bundle savedInstanceState) super.onRestoreInstanceState(savedInstanceState); Log.i(TAG, (3) onRestoreInstanceState(); Override /在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源 public void onResume() super.onResume(); Log.i(TAG,
17、(4) onResume(); 33. Override / 在onResume()后被调用,保存界面信息 public void onSaveInstanceState(Bundle savedInstanceState) 4.3 Activity生命周期 super.onSaveInstanceState(savedInstanceState); Log.i(TAG, (5) onSaveInstanceState(); Override /在重新进入可视生命周期前被调用,载入界面所需要的更改信息 public void onRestart() super.onRestart(); Log
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 生命周期 总结
限制150内