android 动态注册广播
时间: 2023-10-31 21:57:25 浏览: 48
在 Android 中,广播可以使用静态注册和动态注册。动态注册是指在代码中通过 Java 代码动态地注册广播接收器。下面是一个简单的示例代码,演示如何在 Android 应用程序中动态注册广播接收器:
1.创建一个 BroadcastReceiver 对象
```java
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 处理广播事件
}
}
```
2.在 Activity 中动态注册 BroadcastReceiver
```java
public class MainActivity extends AppCompatActivity {
private MyBroadcastReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建 BroadcastReceiver 对象
receiver = new MyBroadcastReceiver();
// 创建 IntentFilter 对象
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.BOOT_COMPLETED"); // 监听系统启动完成广播事件
// 注册广播接收器
registerReceiver(receiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 注销广播接收器
unregisterReceiver(receiver);
}
}
```
在这个示例中,我们创建了一个 MyBroadcastReceiver 对象,并在 Activity 的 onCreate() 方法中动态注册了这个 BroadcastReceiver。我们还创建了一个 IntentFilter 对象,并添加了一个监听系统启动完成广播事件的 action。最后,我们使用 registerReceiver() 方法来注册 BroadcastReceiver。
当 Activity 销毁时,我们使用 unregisterReceiver() 方法来注销 BroadcastReceiver。这是非常重要的,因为如果不注销 BroadcastReceiver,会导致内存泄漏问题。