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