组件通信: 消息机制和广播 杨刚 中国人民大学
杨刚 中国人民大学 组件通信: 消息机制和广播
本章学习目标 ■掌握广播机制的原理和使用方法 ■掌握消息机制的原理和使用方法,包括 Message、Handler、Looper类的使用 ·掌握通过消息机制动态获取信息; ■掌握异步处理工具类:AsyncTask的使用
本章学习目标 n 掌握广播机制的原理和使用方法 n 掌握消息机制的原理和使用方法,包括 Message、Handler、Looper类的使用 n 掌握通过消息机制动态获取信息; n 掌握异步处理工具类:AsyncTask的使用
广播机制 口利用Intent发送广播消息 ■Broadcast是一种广泛运用在应用程序之间异步传输信息的机制。 Android系统通过发出广播消息,来通知各应用组件一些系统事件, ■应用程序和Android:系统都可以使用Intent发送广播消息 ■广播消息的内容可以与应用程序密切相关的自定义数据信息,也可以 Android的系统信息 口网络连接变化 ▣电池电量变化 口接收到短信 口系统设置变化 ■BroadcastReceiver用于接收并处理广播消息。不管是系统消息还是自 定义消息,都可以通过BroadcastReceiver来进行处理。形象的比喻, Intent是一种一对一的通信,广播消息是一种一对多的通信
广播机制 q 利用Intent发送广播消息 n Broadcast是一种广泛运用在应用程序之间异步传输信息的机制。 Android系统通过发出广播消息,来通知各应用组件一些系统事件, n 应用程序和Android系统都可以使用Intent发送广播消息 n 广播消息的内容可以与应用程序密切相关的自定义数据信息,也可以 Android的系统信息 q 网络连接变化 q 电池电量变化 q 接收到短信 q 系统设置变化 n BroadcastReceiver用于接收并处理广播消息。不管是系统消息还是自 定义消息,都可以通过BroadcastReceiver来进行处理。形象的比喻, Intent是一种一对一的通信,广播消息是一种一对多的通信
广播消息 使用Intent发送广播消息非常简单 口只需创建一个Intent 口并调用sendBroadcast(()函数把Intent携带的信息广播出去 1.String UNIQUE_STRING 'com.example.BroadcastReceiverDemo"; 2.Intentintent new Intent(UNIQUE_STRING); 3.intent.putExtra("key1","value1"); 4.intent.putExtra("key2","value2"); 5.sendBroadcast(intent); 口在构造Intent时必须定义一个全局唯一的字符串,用来标识 其要执行的动作,通常使用应用程序包的名称 要在Intent传递额外数据,可以用Intent的outExtra(O方法
广播消息 n 使用Intent发送广播消息非常简单 q 只需创建一个Intent q 并调用sendBroadcast()函数把Intent携带的信息广播出去 q 在构造Intent时必须定义一个全局唯一的字符串,用来标识 其要执行的动作,通常使用应用程序包的名称 q 要在Intent传递额外数据,可以用Intent的putExtra()方法 1. String UNIQUE_STRING = “com.example.BroadcastReceiverDemo"; 2. Intent intent = new Intent(UNIQUE_STRING); 3. intent.putExtra("key1", "value1"); 4. intent.putExtra("key2", "value2"); 5. sendBroadcast(intent);
·播消息 ·接收消息 (1)在AndroidManifest.xml文件中注册BroadcastReceiver 1. <receiver android:name=".MyBroadcastReceiver"> 2. <intent-filter> 3. <action android:name="com.example.BroadcastReceiverDemo"/> </intent-filter> 5. </receiver> (2)创建BroadcastReceiveri需继承BroadcastReceiver类,并 重载onReceive()方法。示例代码如下: 1.public class MyBroadcastReceiver extends BroadcastReceiver 2 @Override 3. public void onReceive(Context context,Intent intent) //TODO:React to the Intent received. 4
广播消息 n 接收消息 (1)在AndroidManifest.xml文件中注册BroadcastReceiver (2)创建BroadcastReceiver需继承BroadcastReceiver类,并 重载onReceive()方法。示例代码如下: 1. public class MyBroadcastReceiver extends BroadcastReceiver { 2. @Override 3. public void onReceive(Context context, Intent intent) { //TODO: React to the Intent received. 4. } } 1. <receiver android:name=".MyBroadcastReceiver"> 2. <intent-filter> 3. <action android:name=“com.example.BroadcastReceiverDemo" /> 4. </intent-filter> 5. </receiver>