requestLocationUpdates不会更新间隔Android

问题描述:

我有问题,我的服务,实现了LocationListener,每500毫秒似乎收到一个GPSupdate。无论我把什么minTime放在requestLocationUpdates函数中。requestLocationUpdates不会更新间隔Android

我的一段代码:

public class LocationService extends Service implements LocationListener { 

    LocationManager locMan; 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     locMan = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     locMan.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER; 
     locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 1, this); 

    } 

    public void onLocationChanged(Location location) { 
     Log.d("Loc", "Location has been changed"); 
    } 
} 

从一个按钮,在我的主要活动我会打电话给startService(),在此之后它应该在后台运行,但它提供了持续的更新。

我看到了一些东西不对您的情况:

GPS的精确度是最好的,在3米左右,这是在最佳条件下。所以如果位置改变1米,请求更新是没有意义的。当设备静止不动时,GPS噪音很容易指示移动。使minDistance至少10是我的建议。

我不明白你为什么要调用isProviderEnabled(),因为你没有对返回值做任何事情。

你说startService()后应该在后台运行,但事实并非如此。除非您为后台创建某种后台线程,否则服务不会在后台运行。这个答案中有太多内容要解释服务如何工作。上网并做一些阅读,或者获得一本关于Android开发的好书。