2011-05-10 61 views
0

有没有办法从特定intervan的locationManager请求位置更新并忽略minDistance?我试过android locationManager requestLocationUpdates

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3600 * 1000, 1, this) 

但在日志中有时会出现该位置是在几分钟内更新,有时小时的一半......可以这样做在一个固定的时间间隔更新位置信息,而忽略距离是多少?

+0

你试过将minDistance(3rd参数)设置为0吗? – 2011-05-10 09:25:26

+0

是的,我已经尝试过0和-1,但结果相同... – 2011-05-10 09:27:35

回答

1

您可以使用此架构。创建新的Runnable,每次都会调用,当你需要它时

private final Handler _handler = new Handler(); 
private static int DATA_INTERVAL = 60 * 1000; 

private final Runnable getData = new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     getDataFrame(); 
    } 
}; 
private void getDataFrame() 
{ 
    requestGPS(); 
    Timer time = new Timer(); 
    time.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       _locationManager.removeUpdates(_connector); 
       this.cancel(); 
      } 
     }, 5000, 5000); 
    _handler.postDelayed(getData, DATA_INTERVAL); 
} 
private void requestGPS() 
{ 
    _locationManager.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 
       0, 
       0, 
       _connector); 
} 
+0

可以将该代码用于远程服务,我想获取用户位置? – noloman 2011-08-06 14:28:21

+2

不能,因为我不断地得到异常'不能被称为形式的服务'不能在线程中创建处理程序,而不是在Android中调用Looper准备。 – noloman 2011-08-06 14:54:36

相关问题