[英]Unregister Broadcast Receiver in a static way - Android
我想在活動A中注冊一個廣播接收器,並在活動B中注銷它。我有下面的靜態代碼:
private static BroadcastReceiver smsReceiver;
public static void registerSMSBR(Context context){
smsReceiver = new SmsReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("SMS_RECEIVED");
context.registerReceiver(smsReceiver, filter);
}
public static void unregisterSMSreceiver(Context context){
if(smsReceiver != null){
context.unregisterReceiver(smsReceiver);
}
}
我已經添加了正確的權限,並且正在調用registerSMSBR(context);
在活動A中並unregisterSMSreceiver(context);
在活動B中。
問題是“ unregisterSMSreceiver(context)”不會取消注冊,並且onReceive仍在新的SMS消息上運行。
我究竟做錯了什么?
在這兩種情況下,您可能都將活動用作上下文。 因此,您在一個上下文中注冊了一個接收者。 並在另一個(不存在的地方)注銷。 在兩種情況下都嘗試使用activity.getApplicationContext()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.