[英]Does turning on/off GPS broadcast the android.location.PROVIDERS_CHANGED message?
[英]android.location.PROVIDERS_CHANGED BroadcastReceiver fires off many times
我正在测试广播接收器,并在日志中打印GPS的状态,以了解其是否按预期工作,并且发现了一些奇怪的行为(也许这并不奇怪,但我没想到。 )
每当有人切换GPS时(如果是一段时间以来第一次),BroadcastReceiver都需要一段时间才能接收到该事件,当它触发时,它将触发多次(大约10次)。 之后,将其切换为开和关时,每次都会触发两次。
为什么是这样?
这就是我的清单:
<receiver android:name=".receivers.GpsLocationReceiver" >
<intent-filter>
<action android:name="android.location.PROVIDERS_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
您可以使用sharedpreference和线程来避免此问题,但这不是解决此问题的正确方法
我的方法如下
@Override
public void onReceive(Context context, Intent intent) {
boolean flage=MainActivity.getpreference();
if(!flage){
MainActivity.putPreferens(true);
Log.e("gpssss","gpssss");
Thread thread = new Thread() {
@Override
public void run() {
try {
sleep(2000);
MainActivity.putPreferens(false);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}}
}
到主类创建共享首选项并存储布尔值false广泛的演员表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.