第8章 Android应用程序组成.ppt
《第8章 Android应用程序组成.ppt》由会员分享,可在线阅读,更多相关《第8章 Android应用程序组成.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 Android应用程序组成AndroidAndroid应用程序的重要组成部分,包括活动应用程序的重要组成部分,包括活动(ActivityActivity)、广播接收器()、广播接收器(Broadcast ReceiverBroadcast Receiver)、服)、服务(务(ServiceService)、内容提供者()、内容提供者(ContentProviderContentProvider)。一个)。一个AndroidAndroid应用必定包含至少一个应用必定包含至少一个ActivityActivity,其他的,其他的3 3个组成个组成部分为可选部分。部分为可选部分。8.1 深入理
2、解Activity接下来将我们将学习接下来将我们将学习ActivityActivity直接的纽带直接的纽带意图意图(IntentIntent)。)。8.1.1 使用Intent连接Activity意图(意图(IntentIntent)被用来连接各个)被用来连接各个ActivityActivity,也被用来在各,也被用来在各个个ActivityActivity中传递数据。在本节中将学习:中传递数据。在本节中将学习:(1 1)创建)创建IntentIntent(2 2)使用)使用startActivitystartActivity()()调用调用IntentIntent完成跳转完成跳转(3 3)使
3、用)使用startActivityForResultstartActivityForResult()()方法调用方法调用IntentIntent(4 4)使用)使用IntentIntent在在ActivityActivity中传递数据中传递数据使用使用IntentIntent完成完成ActivityActivity的跳转只需两个步骤:的跳转只需两个步骤:1.1.创建创建IntentIntent在创建在创建IntentIntent时,我们可以使用如下构造方法:时,我们可以使用如下构造方法:IntentIntent.Intent(.Intent(ContextContext packageCont
4、extpackageContext,ClassClass clscls)2.2.调用调用IntentIntent创建完成后,我们可以使用创建完成后,我们可以使用startActivitystartActivity()()方法调用方法调用IntentIntent以完成跳转,语法格式如下:以完成跳转,语法格式如下:ActivityActivity.startActivity(.startActivity(IntentIntent intent)intent)完成了完成了IntentIntent最基本的应用,让我们接着挖掘最基本的应用,让我们接着挖掘IntentIntent的使用,的使用,在一个在一
5、个ActivityActivity跳转到另一个跳转到另一个ActivityActivity时可以通过时可以通过IntentIntent传传递数据。这也是递数据。这也是IntentIntent十分实用的一个功能。使用步骤分为十分实用的一个功能。使用步骤分为两步:两步:(1 1)在起始)在起始ActivityActivity中存入需要传递的数据。语法格式为:中存入需要传递的数据。语法格式为:IntentIntent.putExtra(.putExtra(StringString name,name,StringString value)value)(2 2)在目标)在目标ActivityActiv
6、ity中取出中取出IntentIntent中携带的数据,语法格式中携带的数据,语法格式为:为:1.1.IntentIntent.getExtras.getExtras()()接着我们要做的事情就是在接着我们要做的事情就是在Activity1Activity1中取得我们传递的数据:中取得我们传递的数据:(1 1)通过)通过getIntentgetIntent()()方法得到方法得到intentintent对象对象(2 2)通过)通过getExtrasgetExtras()()方法得到方法得到BundleBundle对象对象(3 3)通过)通过getStringgetString(String k
7、eyString key)方法得到具体的数)方法得到具体的数最后运行程序,效果图如下所示:最后运行程序,效果图如下所示:我们希望从一个界面跳转到另一个界面进行相关的工作如注我们希望从一个界面跳转到另一个界面进行相关的工作如注册等,在注册页面完成输入相关信息后再返回到起始页面。册等,在注册页面完成输入相关信息后再返回到起始页面。并显示用户在注册页面输入的相关信息。这时我们可以使用并显示用户在注册页面输入的相关信息。这时我们可以使用另一种启动另一种启动ActivityActivity的方式:的方式:startActivityForResultstartActivityForResult(Inten
8、t Intent intentintent)使用它的主要步骤如下:使用它的主要步骤如下:(1 1)新建)新建IntentIntent,并使用,并使用startActivityForResultstartActivityForResult()()方法调方法调用该用该IntentIntent。(2 2)重写)重写onActivityResultonActivityResult()()方法,在方法中处理返回结果。方法,在方法中处理返回结果。(3 3)在目标)在目标ActivityActivity中,新建一个空指向的中,新建一个空指向的IntentIntent,并绑定,并绑定数据。数据。(4 4)使用
9、)使用setResultsetResult()()方法,将方法,将IntentIntent传递到结果中。传递到结果中。(5 5)调用)调用finish()finish()方法结束目标方法结束目标ActivityActivity。运行代码之后,得到的效果图如图运行代码之后,得到的效果图如图1 1、2 2、3 3所示:所示:图图1 1 图图2 2 图图3 38.1.2 Activity的生命周期首先,首先,ActivityActivity包括如下生命周期:包括如下生命周期:(1 1)onCreateonCreate()()(2 2)onStartonStart()()(3 3)onResumeon
10、Resume()()(4 4)onPauseonPause()()(5 5)onStoponStop()()(6 6)onDestroyonDestroy()()(7 7)onRestartonRestart()()让我们通过下图来更直观地认识它。让我们通过下图来更直观地认识它。让我们新建两个让我们新建两个ActivityActivity分别命名为分别命名为ActivityAActivityA和和ActivityBActivityB,并重写这两个,并重写这两个ActivityActivity的的7 7个生命周期,在执行时添加日志个生命周期,在执行时添加日志打印。打印。通过以上两个通过以上两个A
11、ctivityActivity的代码,我们可以观察日志,以进一的代码,我们可以观察日志,以进一步理解步理解ActivityActivity的生命周期。运行以上代码,当程序启动时,的生命周期。运行以上代码,当程序启动时,观察日志如下:观察日志如下:从日志得出结论,从日志得出结论,ActivityAActivityA在程序启动时以供经历了在程序启动时以供经历了3 3个生个生命阶段,分别是命阶段,分别是onCreateonCreate,onStartonStart()()以及以及onResumeonResume()(),这与,这与我们之前的分析不谋而合。此时我们之前的分析不谋而合。此时Activit
12、yAActivityA已经可以进行用户已经可以进行用户操作了,所以我们可以单击操作了,所以我们可以单击ButtonButton按钮以实现按钮以实现ActivityActivity的转的转换。换。同样地,当我们从同样地,当我们从ActivityBActivityB再次跳转到再次跳转到ActivityAActivityA时,日志时,日志如图所示:如图所示:到这里,到这里,ActivityActivity依然没有执行销毁过程也就是系统还没有依然没有执行销毁过程也就是系统还没有执行执行onDestroyonDestroy()()方法。不要着急,按下手机的方法。不要着急,按下手机的backback键,此
13、时键,此时程序会回到上一个程序会回到上一个ActivityActivity,也就是,也就是ActivityBActivityB,并销毁,并销毁ActivityAActivityA,那么看看输出的日志吧:,那么看看输出的日志吧:接下来,让我们想一想,当按下系统的接下来,让我们想一想,当按下系统的HomeHome键后,键后,ActivityActivity的生命周期如何呢?我们依然观察日志:的生命周期如何呢?我们依然观察日志:我们看到我们看到ActivityAActivityA只执行了两个过程:只执行了两个过程:onPauseonPause()()以及以及onStoponStop()(),当我们长
14、按,当我们长按HomeHome键再次进入程序,按照我们的推理,键再次进入程序,按照我们的推理,ActivityActivity应该执行的生命周期流程应该是:应该执行的生命周期流程应该是:onRestartonRestart()()onStartonStart()()onResumeonResume()()日志如图所示:日志如图所示:8.2 使用广播接收器既然有直接既然有直接IntentIntent就肯定有间接就肯定有间接IntentIntent,间接,间接IntentIntent是指是指一个没有指定具体目标的一个没有指定具体目标的IntentIntent,只是在本身被创建时添,只是在本身被创建
15、时添加了一些描述信息,如种类、动作等。这类加了一些描述信息,如种类、动作等。这类IntentIntent通常会通常会被被“广播广播”出去,所有关心该出去,所有关心该IntentIntent的广播接收器都会接的广播接收器都会接受广播并处理。受广播并处理。8.2.1 发送广播一个一个IntentIntent包含的说明信息如下:包含的说明信息如下:(1 1)ActionAction:操作,要执行的动作的定义;:操作,要执行的动作的定义;(2 2)data:data:数据:对于指定动作相关联的数据;数据:对于指定动作相关联的数据;(3 3)typetype:数据类型,对动作的数据类型;:数据类型,对动
16、作的数据类型;(4 4)categoycategoy:类别,对执行动作的附加信息;:类别,对执行动作的附加信息;(5 5)extrasextras:附件信息,其他所有的附加信息;:附件信息,其他所有的附加信息;(6 6)componentcomponent:目标组件,指定目标组件。:目标组件,指定目标组件。8.2.2 接收广播AndroidAndroid中的收音机叫做广播接收器中的收音机叫做广播接收器BroadcastReceiverBroadcastReceiver。每一个广播接收器都必须有一个。每一个广播接收器都必须有一个IntentIntent过滤器,用以指定接收怎样的过滤器,用以指定接
17、收怎样的IntentIntent广播。广播。要使用要使用BroadcastReceiverBroadcastReceiver需要如下需要如下4 4个步骤:个步骤:(1 1)新建一个)新建一个IntentIntent过滤器过滤器(2 2)新建一个)新建一个BroadcastReceiverBroadcastReceiver(3 3)注册广播接收器)注册广播接收器(4 4)注销广播接收器)注销广播接收器8.2.3 广播实例接下来我们通过一个实例来完成对广播的实践,在实例中接下来我们通过一个实例来完成对广播的实践,在实例中你可以学到如何发送一个广播,并在你可以学到如何发送一个广播,并在Activit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 Android应用程序组成 Android 应用程序 组成
限制150内