预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共44页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章Android应用程序组成8.1深入理解Activity8.1.1使用Intent连接Activity 使用Intent完成Activity的跳转只需两个步骤: 1.创建Intent 在创建Intent时,我们可以使用如下构造方法: Intent.Intent(ContextpackageContext,Class<?>cls) 2.调用Intent 创建完成后,我们可以使用startActivity()方法调用Intent以完成跳转,语法格式如下: Activity.startActivity(Intentintent) 完成了Intent最基本的应用,让我们接着挖掘Intent的使用,在一个Activity跳转到另一个Activity时可以通过Intent传递数据。这也是Intent十分实用的一个功能。使用步骤分为两步: (1)在起始Activity中存入需要传递的数据。语法格式为: Intent.putExtra(Stringname,Stringvalue) (2)在目标Activity中取出Intent中携带的数据,语法格式为: 1.Intent.getExtras() 接着我们要做的事情就是在Activity1中取得我们传递的数据: (1)通过getIntent()方法得到intent对象 (2)通过getExtras()方法得到Bundle对象 (3)通过getString(Stringkey)方法得到具体的数 最后运行程序,效果图如下所示: 我们希望从一个界面跳转到另一个界面进行相关的工作如注册等,在注册页面完成输入相关信息后再返回到起始页面。并显示用户在注册页面输入的相关信息。这时我们可以使用另一种启动Activity的方式: startActivityForResult(Intentintent) 使用它的主要步骤如下: (1)新建Intent,并使用startActivityForResult()方法调用该Intent。 (2)重写onActivityResult()方法,在方法中处理返回结果。 (3)在目标Activity中,新建一个空指向的Intent,并绑定数据。 (4)使用setResult()方法,将Intent传递到结果中。 (5)调用finish()方法结束目标Activity。 运行代码之后,得到的效果图如图1、2、3所示: 图1图2图38.1.2Activity的生命周期让我们通过下图来更直观地认识它。 让我们新建两个Activity分别命名为ActivityA和ActivityB,并重写这两个Activity的7个生命周期,在执行时添加日志打印。 通过以上两个Activity的代码,我们可以观察日志,以进一步理解Activity的生命周期。运行以上代码,当程序启动时,观察日志如下: 从日志得出结论,ActivityA在程序启动时以供经历了3个生命阶段,分别是onCreate,onStart()以及onResume(),这与我们之前的分析不谋而合。此时ActivityA已经可以进行用户操作了,所以我们可以单击Button按钮以实现Activity的转换。 同样地,当我们从ActivityB再次跳转到ActivityA时,日志如图所示: 到这里,Activity依然没有执行销毁过程也就是系统还没有执行onDestroy()方法。不要着急,按下手机的back键,此时程序会回到上一个Activity,也就是ActivityB,并销毁ActivityA,那么看看输出的日志吧: 接下来,让我们想一想,当按下系统的Home键后,Activity的生命周期如何呢?我们依然观察日志: 我们看到ActivityA只执行了两个过程:onPause()以及onStop(),当我们长按Home键再次进入程序,按照我们的推理,Activity应该执行的生命周期流程应该是: onRestart()——>onStart()——>onResume() 日志如图所示: 8.2使用广播接收器8.2.1发送广播8.2.2接收广播8.2.3广播实例1.布局文件 在配置文件中添加如下3个组件,如表所示: 2.整体设计 整体设计中,在onCreate()方法中完成接收器的新建和注册,在初始化界面函数中完成按钮的单击事件,不同的按钮发送不同Intent的广播。 3.初始化界面函数 按下btn1时发送action为ACTION_1的Intent,按下btn2时发送action为ACTION_2的Intent。 4.Activity结束时,注销广播接收器 运行代码之后,效果如组图所示: 8.3使用服务8.3.1新建服务接下来就开始进入具体的实现步骤,首先在Eclipse的工程浏览器中选择