filter.addAction
时间: 2023-10-19 21:20:32 浏览: 45
filter.addAction是Android开发中的一个方法,用于向IntentFilter中添加一个action。IntentFilter用于声明一个应用程序能够接收哪些类型的Intent。addAction方法则是用于向IntentFilter中添加一个action,表示该应用程序能够响应的具体操作。例如,当我们想要接收系统发送的广播时,就需要在IntentFilter中使用addAction方法添加对应的action。例如,以下代码可以将应用程序注册为能够接收系统发送的ACTION_BOOT_COMPLETED广播:
```
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BOOT_COMPLETED);
context.registerReceiver(receiver, filter);
```
相关问题
注册广播的时候filter.addAction可以添加多条吗
是的,可以在 BroadcastReceiver 的 IntentFilter 中添加多个 Action。这样,当接收到任何一个指定的 Action 的广播时,BroadcastReceiver 都会被触发。
示例代码如下:
```
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if ("com.example.broadcast.MY_BROADCAST_1".equals(action)) {
// 处理 MY_BROADCAST_1 广播
} else if ("com.example.broadcast.MY_BROADCAST_2".equals(action)) {
// 处理 MY_BROADCAST_2 广播
}
}
}
// 注册 MyBroadcastReceiver
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.broadcast.MY_BROADCAST_1");
filter.addAction("com.example.broadcast.MY_BROADCAST_2");
registerReceiver(receiver, filter);
```
在这个示例中,我们创建了一个 MyBroadcastReceiver,它会接收两种不同的广播:MY_BROADCAST_1 和 MY_BROADCAST_2。我们在 IntentFilter 中使用 addAction() 方法添加了两个 Action,这样 MyBroadcastReceiver 就可以接收这两种广播了。
当有任何一个指定的 Action 的广播被发送时,MyBroadcastReceiver 的 onReceive() 方法就会被调用,我们可以在这里根据 Action 来处理不同的广播。
filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
这行代码是在Android应用程序中注册一个BroadcastReceiver,用于接收系统发送的关闭系统对话框的广播。通过filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)方法,将该BroadcastReceiver注册为接收关闭系统对话框广播的监听器。当系统要关闭对话框时,会发送该广播,被注册的BroadcastReceiver就会收到该广播并执行相应的操作。