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开发的好书。