【问题标题】:requestLocationUpdates does not update on interval in AndroidrequestLocationUpdates 在 Android 中不会按时间间隔更新
【发布时间】:2011-04-29 05:34:13
【问题描述】:

我的问题是我的服务已实现 LocationListener,似乎每 500 毫秒接收一次 GPS 更新。无论我在 requestLocationUpdates 函数中设置了多少 minTime。

我的一段代码:

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() ,之后它应该在后台运行,但它会提供持续更新。

【问题讨论】:

    标签: android gps location locationmanager


    【解决方案1】:

    我发现您的情况有些问题:

    GPS 的准确度最高约为 3 米,处于最佳状态。因此,如果位置变化 1 米,则请求更新是没有意义的。实际上,当设备静止不动时,GPS 噪音很容易表明运动。我的建议是让 minDistance 至少为 10。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多