内容正文:
第7章 理解和使用 Intent
Android Studio 移动应用开发基础(第 2 版)
目录
7.1 Intent 入门
7.2 同步练习一 .
7.3 细说 Intent
7.4 Intent 解析
7.5 获取 Activity 返回的结果
7.6 Intent 的综合应用案例
7.7 同步练习二
7.8 广播消息和广播接收器 .
7.9 同步练习三 .
7.6 Intent 的综合应用案例
案例应用程序运行效果的首界面为一个功能列表,点击“浏览网页”图片按钮,会启动浏览器,点击“拨打电话”图片按钮,会显示拨打电话界面:
新建一个名为 Ch0703 的 Android 应用程序工程,并且将需要用到的图片资源文件存储于 res/mipmap 目录下。修改布局文件 res/layout/activity_main.xml 中的代码:
修改 res/values/strings.xml 文件:
修改 MainActivity.java 文件:
......
7.7 同步练习二
完善 7.6 节中的案例应用程序,要求如下。
(1)将显示在按钮右边的字体调大,使其与左边的按钮大小相匹配。
(2)新建一个 Activity,单击图 7-7 所示界面中的一个按钮,能够启动并运行该 Activity,该Activity 会返回
一些数据给 MainActivity,并且 MainActivity 能够显示返回的数据。
7.8 广播消息和广播接收器
使用 Intent 对象不仅可以启动新的 Activity,还可以在应用程序之间广播消息;
Android 提供了两种可广播消息,即普通消息和有序消息。
普通消息是指所有对该消息感兴趣的接收者都可以收到的消息,接收者收到该消息的顺序是随机的。
有序消息是指按指定优先级传递的消息,将消息先传递给具有最高优先级的接收者,具有最高优先级的接收者可以决定是否继续转发该消息给其他低优先级的接收者;
只介绍普通消息。
7.8.1 发送和接收普通消息
所有 Activity 都可以使用 sendBroadcast(Intent intent)方法和 sendBroadcast(Intent intent, String receiverPermission)方法发送普通消息;
使用 sendBroadcast(Intent intent)方法可以将普通消息发送给所有的接收者,无论接收者是否具有接收权限;使用 sendBroadcast(Intent intent, String receiverPermission)方法可以将普通消息发送给具有接收权限的接收者。
要接收 sendBroadcast()方法发送的普通消息,接收者必须继承 BroadcastReceiver 类,并且需要实现其中的 onReceive(Context context, Intent intent)方法。此外,需要在 AndroidManifest. xml文件或程序代码中注册这个接收者。
举例说明如何发送和接收普通消息。该案例应用程序的首界面中有一个输入框和一个按钮,在输入框中输入要发送的消息,点击按钮即可将消息发送出去;消息接收者在接收到该消息后,会通过 Toast 组件将该消息显示出来;
新建一个名为 Ch0704 的 Android 应用程序工程。修改布局文件 res/layout/activity_main.xml 中的代码:
修改 res/values/strings.xml 文件中的代码:
修改 MainActivity.java 文件中的代码:
消息接收器,用于接收该消息。新建一个名为 MyReceiver 的 Java 类文件:
AndroidManifest.xml 文件:
除了可以在 AndroidManifest.xml 文件中注册消息接收者(称为静态注册),还可以在 Java代码中注册消息接收者(称为动态注册)。修改后的 MainActivity.java 文件:
7.8.2 接收 Android 平台广播的普通消息
Android 平台在特定的情况下会广播特定的普通消息,任何感兴趣的接收者通过注册均可以接收到这些普通消息。
7.9 同步练习三
编写一个消息接收器应用程序,该应用程序既可以接收自己编写的应用程序发送的普通消息,又可以接收 Android 平台发送的 Intent.ACTION_POWER_CONNECTED 消息,设计界面并测试该应用程序
Q & A
$