在Android中,要完全中止/删除粘性广播,您可以使用以下方法:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 在这里处理您的广播逻辑
}
}
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
public static void registerStickyBroadcast(Context context) {
Intent intent = new Intent(context, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pendingIntent);
}
public static void unregisterStickyBroadcast(Context context) {
Intent intent = new Intent(context, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
例如,在您的Activity的onCreate()方法中调用registerStickyBroadcast()方法,在onDestroy()方法中调用unregisterStickyBroadcast()方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerStickyBroadcast(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterStickyBroadcast(this);
}
通过这种方式,您可以完全中止/删除粘性广播,并确保您的应用程序不会收到任何粘性广播。
领取专属 10元无门槛券
手把手带您无忧上云