在我的应用程序中,我希望同时使用两种定位提供程序。
也就是说,如果 GPS 被禁用,我希望我的应用程序切换到网络,并在启用 GPS 时切换回来。
我正在使用两个 LocationListener 来处理这两个请求。
public void onStatusChanged(String provider, int status,Bundle extras)
switch (status) {
case LocationProvider.TEMPORARILY_UNAVAILABLE:
......
break;
case LocationProvider.OUT_OF_SERVICE
.....
break;
case LocationProvider.AVAILABLE
.....
break;
}
在每个侦听器中,我在
onStatusChanged()
中检测这些状态。结果证明,这个方法将在第一次改变(禁用网络)时使用,但当我再次启用网络时,它什么都不显示。为什么会这样?侦听器不会一直检测状态吗?请帮帮我,最好能够将解决方案发布为代码...谢谢!
removeUpdates()
,监听器将不再起作用。所以,case LocationProvider.AVAILABLE
是无用的。你只能使用线程来发出新的请求。(我知道这不是一个很好的解决方案,所以如果你有更好的解决方案,请告诉我,我会很乐意看到的!谢谢!) - alvan