【问题标题】:Android how to use GPS lastknownlocation IFF locationchangedlistener won't runAndroid 如何使用 GPS lastknownlocation IFF locationchangedlistener 不会运行
【发布时间】:2011-10-10 17:24:59
【问题描述】:

我有一个服务运行这个线程来获取 GPS 坐标

   LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
   GpsListener gpsLocationListener = new GpsListener();
   long minTime = 5000; // 5 sec for test purposes...
   float minDistance = 1;
   lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
            minDistance, gpsLocationListener);

当然我的gpsLocationListener 看起来像这样:

   class GpsListener implements LocationListener{

        public void onLocationChanged(Location location) {
              // TODO Auto-generated method stub
              latitude = location.getLatitude();
              longitude = location.getLongitude();
              //float speed = location.getSpeed();
              checkin();

        }

        public void onProviderDisabled(String provider) {
              // TODO Auto-generated method stub

        }

        public void onProviderEnabled(String provider) {
              // TODO Auto-generated method stub

        }


        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

}

onLocationChanged 方法在获取纬度和经度后将其发送到服务器。

不幸的是,这种方法在我的测试中没有像我希望的那样可靠运行,我基本上起身四处走动,看看它是否记录了我的位置已经改变。

如果另一个函数在 X 秒内没有更新,我该如何运行它。这个不同的函数只会发送最后一个已知的坐标?

感谢您的洞察力!

【问题讨论】:

    标签: android multithreading gps listener coordinates


    【解决方案1】:

    您需要设置一个循环计时器。 Android - Reliably getting the current location 可能会帮助您完成您想做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多