Android 发送广播的方法以及简单代码示例
时间: 2023-04-08 09:02:39 浏览: 67
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 才能接收到广播。
相关问题
Android 所有广播类型及简单代码示例
我可以回答这个问题。Android 广播类型包括标准广播、有序广播和粘性广播。以下是一个简单的代码示例:
发送标准广播:
Intent intent = new Intent("com.example.broadcast.MY_ACTION");
sendBroadcast(intent);
接收标准广播:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("com.example.broadcast.MY_ACTION".equals(intent.getAction())) {
// 处理广播
}
}
}
发送有序广播:
Intent intent = new Intent("com.example.broadcast.MY_ACTION");
sendOrderedBroadcast(intent, null);
接收有序广播:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("com.example.broadcast.MY_ACTION".equals(intent.getAction())) {
// 处理广播
abortBroadcast(); // 终止广播传递
}
}
}
发送粘性广播:
Intent intent = new Intent("com.example.broadcast.MY_ACTION");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendStickyBroadcast(intent);
接收粘性广播:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("com.example.broadcast.MY_ACTION".equals(intent.getAction())) {
// 处理广播
Intent stickyIntent = context.getStickyBroadcast(intent);
// 获取粘性广播
}
}
}
Android有序广播介绍以及代码示例
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);
}
}
}