Java 以静态方式注销广播接收器-Android
我想在活动a中注册广播接收器,然后在活动B中取消注册。 我有一个静态代码:Java 以静态方式注销广播接收器-Android,java,android,static,broadcastreceiver,Java,Android,Static,Broadcastreceiver,我想在活动a中注册广播接收器,然后在活动B中取消注册。 我有一个静态代码: private static BroadcastReceiver smsReceiver; public static void registerSMSBR(Context context){ smsReceiver = new SmsReceiver(); IntentFilter filter = new IntentFilter(); filter.addA
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(上下文)代码>
在活动B中
问题是“unregisterSMSreceiver(context)”没有注销,onReceive仍然在新的sms消息上运行
我做错了什么 在这两种情况下,您可能都使用活动作为上下文。因此,在一个上下文中注册一个接收者。并在另一个(没有的地方)注销。尝试在这两种情况下都使用activity.getApplicationContext()
。这是个好主意。但我已经在这两种语言中使用了getApplicationContext()