Java 如何每10秒更新一次GPS位置?

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

我有这些变量,在onResume方法中有以下调用:

  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我想你可以使用计时器。