Android广播事件的注册方式有两种
时间: 2024-01-10 08:21:19 浏览: 25
是的,Android广播事件的注册方式有两种:静态注册和动态注册。
1. 静态注册:
静态注册是在AndroidManifest.xml文件中通过<receiver>标签注册广播接收器,当广播事件发生时,系统会自动创建广播接收器并调用其onReceive()方法。静态注册的优点是可以在应用程序未启动或已经退出时接收广播事件,缺点是无法动态地添加或删除广播接收器,而且会导致无效的广播接收器占用系统资源。
示例代码:
```xml
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
```
2. 动态注册:
动态注册是在应用程序中通过代码注册广播接收器,当广播事件发生时,系统会回调已注册的广播接收器的onReceive()方法。动态注册的优点是可以动态地添加或删除广播接收器,而且可以避免无效的广播接收器占用系统资源,缺点是只有在应用程序已启动时才能接收广播事件。
示例代码:
```java
MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(myBroadcastReceiver, intentFilter);
```