Java 如何每10秒更新一次GPS位置?
我有这些变量,在onResume方法中有以下调用:Java 如何每10秒更新一次GPS位置?,java,android,updates,Java,Android,Updates,我有这些变量,在onResume方法中有以下调用: private Location userLocation; private GeoPoint point; private LocationManager manager; private LocationListener listener = new LocationListenerC(); locationManager.requestLocationUpdates(LocationManager.GPS_PRO
private Location userLocation;
private GeoPoint point;
private LocationManager manager;
private LocationListener listener = new LocationListenerC();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 25, locationListener);
但当我在android emulator中运行这个应用程序时,用户的位置并不是每10秒更新一次。有人能帮忙吗?我想,
条件必须为,时间为10(最小)秒,距离为25(最小)米
参考:minDistance参数也可用于控制位置更新的频率。如果大于0,则位置提供程序仅在位置更改至少MindDistance米且至少超过MintTime毫秒时,才会向您的应用程序发送更新。然而,对于位置提供商来说,使用MindDistance参数来节省电力更为困难,因此minTime应该是节省电池寿命的主要工具 参数
mindTime
并不意味着您将每隔minTime
毫秒接收更新。这意味着在minTime
毫秒内,您不会经常收到更新,但不会指定何时获得更新。如果LocationManager
没有每10秒为您提供一个新位置,它就不会提供。只有在有新位置时,您才会收到更新
您也在使用minDistance
25表示除非设备移动至少25米,否则不会收到新的更新。模拟器不移动,因此将此参数设置为0
(这意味着更新不取决于用户是否移动)
更新率在很大程度上取决于用户位置。例如,如果用户在建筑物内,GPS/网络提供商可能需要一段时间才能从卫星/基站接收更新。因此,您可能会以更长的时间间隔获得更新。但是,如果用户在室外,且设备信号良好,则更新可能会非常频繁(但每10秒仅会更新1次)
如果希望每10秒获取一个位置,可以每10秒调用getLastKnownLocation
。但是,如果没有来自提供程序的更新,则位置可能相同。执行以下操作,如下所示
private Location userLocation;
private GeoPoint point;
private LocationManager manager;
private LocationListener listener = new LocationListenerC();
//Change **locationManager** to **manager**
// and **locationListener** to **listener** in the follwing line
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 25, listener);
仅供参考,每10秒更新一次会破坏人们的电池寿命…它是否得到更新??或者只是10秒的问题他只是保持了android的风格,没问题。你有没有试着在emulator中在10秒内改变位置?我想,如果位置没有改变,那么它就不会更新。.位置在25分钟时更新。我怎样才能每隔10秒调用getLastKnownLocation?@user1850173我想你可以使用计时器。