您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 手机编程与手机游戏设计_第4讲Android生命周期
第4讲Android生命周期计算机学院主讲介绍:张曙光武汉大学计算机学院电话:13808694857飞信群:32160089(武汉大学智能手机群)Email:13808694857@139.comQQ群:82961565(whu手机爱好者)2010年10月20日星期三本讲学习目标这一讲会介绍一些有关程序的理论了解Android系统的进程优先级了解Activity的生命周期掌握Activity事件回调函数的作用和调用顺序掌握Android应用程序的调试方法和工具4.1程序生命周期程序的生命周期进程是一个正在执行的程序程序的生命周期是在Android系统中进程从启动到终止的所有阶段,是Android程序启动到停止的全过程程序的生命周期由Android系统进行调度和控制的4.1程序生命周期前台进程前台进程是与用户正在交互的进程,包含以下四种情况进程中的Activity正在与用户进行交互进程服务被Activity调用,而且这个Activity正在与用户进行交互进程服务正在执行声明周期中的回调函数,如onCreate()、onStart()或onDestroy()进程的BroadcastReceiver正在执行onReceive()函数4.1程序生命周期可见进程可见进程指部分程序界面能够被用户看见,却不在前台与用户交互,不响应界面事件的进程4.1程序生命周期服务进程服务进程是指包含已启动服务的进程没有用户界面在后台长期运行4.1程序生命周期后台进程后台进程是指不包含任何已经启动的服务,而且没有任何用户可见的Activity的进程Android系统中一般存在数量较多的后台进程,在系统资源紧张时,系统将优先清除用户较长时间没有见到的后台进程4.1程序生命周期空进程空进程是不包含任何活跃组件的进程空进程在系统资源紧张时会被首先清除4.1程序生命周期Android系统中的进程优先级由高到低前台进程可见进程服务进程后台进程空进程前台进程高优先级中优先级低优先级可见进程服务进程后台进程空进程4.2Android组件组件是可以调用的基本功能模块,Android应用程序就是由组件组成的Android系统有四个重要的组件ActivityServiceBroadcastReceiverContentProvider4.2Android组件ActivityActivity是Android程序的呈现层,显示可视化的用户界面接收与用户交互所产生的界面事件Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框4.2Android组件ServiceService用于没有用户界面,但需要长时间在后台运行的应用4.2Android组件BroadcastReceiverBroadcastReceiver是用来接受并响应广播消息的组件不包含任何用户界面可以通过启动Activity或者Notification通知用户接收到重要信息Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个持久的图标4.2Android组件ContentProviderContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据私有数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库4.2Android组件组件生命周期所有Android组件都具有自己的生命周期,是从组件建立到组件销毁的整个过程在生命周期中,组件会在可见、不可见、活动、非活动等状态中不断变化4.3Activity生命周期Activity生命周期Activity生命周期指Activity从启动到销毁的过程Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态活动状态,Activity在用户界面中处于最上层,完全能被用户看到,能够与用户进行交互暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡非活动状态不在以上三种状态中的Activity则处于非活动状态4.3Activity生命周期4.3Activity生命周期Activity栈(Android用栈管理Activity)遵循“后进先出”的规则4.3Activity生命周期事件的回调函数1.publicclassMyActivityextendsActivity{2.protectedvoidonCreate(BundlesavedInstanceState);3.protectedvoidonStart();4.protectedvoidonRestart();5.protectedvoidonResume();6.protectedvoidonPause();7.protectedvoidonStop();8.protectedvoidonDestroy();9.}4.3Activity生命周期Activity生命周期的事件回调函数函数是否可终止说明onCreate()否Activity启动后第一个被调用的函数,常用来进行Activity的初始化,例如创建View、绑定数据或恢复信息等。onStart()否当Activity显示在屏幕上时,该函数被调用。onRestart()否当Activity从停止状态进入活动状态前,调用该函数。onResume()否当Activity能够与用户交互,接受用户输入时,该函数被调用。此时的Activity位于Activity栈的栈顶。onPause()是当Activity进入暂停状态时,该函数被调用。一般用来保存持久的数据或释放占用的资源。onStop()是当Activity进入停止状态时,该函数被调用。onDestroy()是在Activity被终止前,即进入非活动状态前,该函数被调用。4.3Activity生命周期函数是否可终止说明onSaveInstanceState()否Android系统因资源不足终止Activity前调用该函数,用以保存Activity的状态信息,供onRestoreInstanceState()或onCreate()恢复之用。onRestoreInstanceState()否恢复onSaveInstanceState()保存的Activity状态信息,在onStart()和onResume()之间被调用。Activity状态保存/恢复的事件回调函数4.3Activity生命周期Activity事件回调函数的调用顺序Activity生命周期分类Activity的生命周期可分为全生命周期、可视生命周期和活动生命周期每种生命周期中包含不同的事件回调函数onCreateonDestroyonStartonStoponResumeonPauseonRestoreInstanceStateonSaveInstanceStateonRestart活动生命周期可视生命周期全生命周期1234567894.3Activity生命周期全生命周期全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()通常在onCreate()中初始化Activity所能使用的全局资源和状态,并在onDestroy()中释放这些资源在一些极端的情况下,Android系统会不调用onDestroy()函数,而直接终止进程4.3Activity生命周期可视生命周期可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()4.3Activity生命周期可视生命周期onStart()一般用来初始化或启动与更新界面相关的资源onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务onRestart()函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程onStart()和onStop()会被多次调用onStart()和onStop()也经常被用来注册和注销BroadcastReceiver4.3Activity生命周期活动生命周期活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码4.3Activity生命周期活动生命周期onPause()是第一个被标识为“可终止”的函数在onPause()返回后,onStop()和onDestroy()随时能被Android系统终止onPause()常用来保存持久数据,如界面上的用户的输入信息等4.3Activity生命周期举例:建立一个新的Android工程工程名称:ActivityLifeCycle包名称:edu.whu.ActivityLifeCycleActivity名称:ActivityLifeCycle4.3Activity生命周期ActivityLifeCycle.java文件的代码1.packageedu.whu.ActivityLifeCycle;2.3.importandroid.app.Activity;4.importandroid.os.Bundle;5.importandroid.util.Log;6.7.publicclassActivityLifeCycleextendsActivity{8.privatestaticStringTAG=LIFECYCLE;9.@Override//完全生命周期开始时被调用,初始化Activity10.publicvoidonCreate(BundlesavedInstanceState){11.super.onCreate(savedInstanceState);12.setContentView(R.layout.main);13.Log.i(TAG,(1)onCreate());14.}15.16.@Override//可视生命周期开始时被调用,对用户界面进行必要的更改17.publicvoidonStart(){18.super.onStart();19.Log.i(TAG,(2)onStart());4.3Activity生命周期ActivityLifeCycle.java文件的代码20.}21.22.@Override//在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息23.publicvoidonRestoreInstanceState(BundlesavedInstanceState){24.super.onRestoreInstanceState(savedInstanceState);25.Log.i(TAG,(3)onRestoreInstanceState());26.}27.28.@Override//在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源29.publicvoidonResume(){30.super.onResume();31.Log.i(TAG,(4)onResume());32.}33.34.@Override//在onResume()后被调用,保存界面信息35.publicvoidonSaveInstanc
本文标题:手机编程与手机游戏设计_第4讲Android生命周期
链接地址:https://www.777doc.com/doc-4961699 .html