如何针对不同的标准一个接一个地使用“requestforlocationupdates”来运行位置更新。
我面临的问题是,当我为了三个条件运行locationupdates时,代码开始执行第一个条件,然后似乎启动了一个单独的线程,它等待位置更改并与侦听器一起工作。因此,在我为第一个标准删除更新之前,我的第二个标准已经开始在主线程中执行,并再次使用新条件请求位置更新。因此,我始终只能运行最后一个标准。
答案 0 :(得分:0)
LocationManager.getBestProvider()函数会返回可用的最佳提供程序。如果没有符合您条件的提供商,则会在发现提供商之前将其放宽。你可以看到你对Criteria的定义是一个上层边界。
如果您想使用不同的条件,可以查看LocationListener.onStatusChanged()回调哪个提供商实际使用。如果您不喜欢提供商(因为它的网络,并且您想要GPS f.e.),那么可以为提供商开始新的请求。