手机编程与手机游戏设计_第4讲Android生命周期

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4讲Android生命周期计算机学院主讲介绍:„张曙光„武汉大学计算机学院„电话:13808694857„飞信群:32160089(武汉大学智能手机群)„Email:13808694857@139.com„QQ群: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组件„Activity‰Activity是Android程序的呈现层,显示可视化的用户界面接收与用户交互所产生的界面事件‰Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动‰在界面上的表现形式:全屏窗体,非全屏悬浮窗体,对话框4.2Android组件„Service‰Service用于没有用户界面,但需要长时间在后台运行的应用4.2Android组件„BroadcastReceiver‰BroadcastReceiver是用来接受并响应广播消息的组件‰不包含任何用户界面‰可以通过启动Activity或者Notification通知用户接收到重要信息„Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏上放置一个持久的图标4.2Android组件„ContentProvider‰ContentProvider是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.ActivityLifeCycle‰Activity名称: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

1 / 64
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功