man*_*521 5 android broadcastreceiver android-gps
我已经浏览了一些处理这个问题的资源,但没有一个提供令人满意的解释或解决方案。我浏览过的一些内容是:
打开/关闭 wifi 或 gps 时,我的 BroadcastReceiver 被调用两次?
android.location.PROVIDERS_CHANGED BroadcastReceiver 多次触发
因此,我重新发布这个问题。
问题陈述很简单,我有一个广播接收器,每当设备的 GPS/位置状态发生变化时就会触发该接收器。问题在于 onReceive() 方法被多次调用(准确地说是 4 次)。
我已在清单文件中注册了我的接收器(而不是其他地方):
<receiver android:name=".broadcasts.DeviceGpsStatusReceiver">
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
我还确保该接收器未在我的应用程序中的其他任何地方注册。
广播接收器的设计如下:
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
// my content
}
}
Run Code Online (Sandbox Code Playgroud)
即使进行了此更改,我仍然看到 onReceive() 重写方法被多次触发。为什么会这样呢?有办法解决这个问题吗?
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |