Android有序广播介绍以及代码示例
时间: 2023-04-08 14:02:40 浏览: 88
Android有序广播是一种广播机制,它允许广播接收器按照优先级顺序接收广播。当一个有序广播被发送时,系统会按照优先级顺序依次将广播发送给每个接收器,每个接收器都可以选择中止广播或者将广播继续传递给下一个接收器。下面是一个简单的有序广播的代码示例:
// 创建一个有序广播的意图
Intent intent = new Intent("com.example.ORDERED_BROADCAST");
// 发送有序广播
sendOrderedBroadcast(intent, null);
// 在广播接收器中处理广播
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 判断广播是否被中止
if (isOrderedBroadcast()) {
// 中止广播
abortBroadcast();
} else {
// 继续传递广播
setResultCode(Activity.RESULT_OK);
setResultData("Received by MyReceiver");
setResultExtras(Bundle.EMPTY);
}
}
}
相关问题
Android 有序广播代码案例
当然可以,以下是一个 Android 有序广播代码案例:
首先,在 AndroidManifest.xml 中注册广播:
```
<receiver android:name=".MyBroadcastReceiver">
<intent-filter android:priority="100">
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
```
然后,创建 MyBroadcastReceiver 类,并实现 onReceive 方法:
```
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
// 处理自己的逻辑
Toast.makeText(context, "Boot completed", Toast.LENGTH_LONG).show();
}
}
}
```
注意:有序广播可以使用 android:priority 属性来设置优先级,优先级高的广播接收器会先收到广播。如果多个广播接收器有相同的优先级,则按注册顺序执行。
Android 发送广播的方法以及简单代码示例
Android 发送广播的方法可以通过以下步骤实现:
1. 创建一个 Intent 对象,指定广播的 action 和数据。
2. 调用 Context 的 sendBroadcast() 方法发送广播。
以下是一个简单的代码示例:
// 创建一个 Intent 对象
Intent intent = new Intent("com.example.broadcast.MY_ACTION");
intent.putExtra("data", "Hello, world!");
// 发送广播
sendBroadcast(intent);
注意:在发送广播时,需要指定广播的 action,接收者也需要注册相应的 action 才能接收到广播。