【发布时间】:2016-11-15 17:03:23
【问题描述】:
这可能是一个非常简单的问题,但我似乎从一天开始就被这些问题所困扰。那么问题来了:
如何在 Activity 中取消注册从 AndroidManifest 文件中注册的 BroadcastReceiver? 这是代码::
<receiver android:name=".PhoneCallReceiver">
<intent-filter >
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
我对函数很熟悉
public void unregisterReceiver(BroadcastReceiver接收器)
但是如果没有使用
从该 Activity 注册,它会引发异常IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PHONE_STATE");
registerReceiver(mybroadcast, filter);
【问题讨论】:
-
尝试从应用程序对象中注销它。我认为清单中的接收者已在应用程序中注册。
-
@GabeSechan-我不明白...你能给我一些代码吗..??
-
getApplication().unregisterReceiver(receiver); Application 对象还允许您注册和取消注册接收器。如果您通过清单注册接收器,它将注册到应用程序上下文,而不是活动上下文。
-
@NilayOnAndroid:见Android - how to unregister a receiver created in the manifest? 帖子
-
@GabeSechan-它抛出“me:java.lang.IllegalArgumentException: Receiver not registered”异常!!!
标签: android exception broadcastreceiver android-broadcast