1

一定の間隔で場所を定期的に更新しようとしています。現在、動作を確認するために2分間隔でテストしています。次に、それをはるかに長い間隔にプッシュします。

関連するコードは次のとおりです。

    public final int LOCATION_TIMER_RATE=120000;

    locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

    locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
            Log.d("BLAH", "Recorded home location as: (" + location.getLatitude() + "," + location.getLongitude() + ")");
        }
        public void onStatusChanged(String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
    };

    locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_TIMER_RATE, 0, locationListener);

次のように1回の更新をリクエストすると、常に20秒程度以内に応答が返されます。しかし、その後も定期的な更新はありません。

locationManager.requestSingleUpdate(LocationManager.NETWORK_PROVIDER, locationListener, null);

単一の更新を要求する場合、定期的な更新を再スケジュールする必要がありますか?

4

1 に答える 1

1

単一の更新を要求する場合は、はい、将来の更新のためにそれを再スケジュールする必要があります。要求期間の更新が一貫していないことについては、ドキュメントにそのように記載されています。更新には、選択した期間よりも長く(または場合によってはさらに短く)かかる場合があります。

于 2012-07-02T21:18:11.483 に答える