6

私はFusedLocationProviderApiを見て遊んでいます。そのクラスは、これらの2つの方法が含まれていますLocationListener LocationCallbackの違いは何ですか?

PendingResult<Status> requestLocationUpdates(GoogleApiClient client, LocationRequest request, LocationCallback callback, Looper looper) 

PendingResult<Status> requestLocationUpdates(GoogleApiClient client, LocationRequest request, LocationListener listener, Looper looper) 

彼らはその一つである唯一の違いと非常によく似た署名と説明を持っているがLocationCallback使用し、他の用途LocationListener

void onLocationAvailability(LocationAvailability locationAvailability) 

void onLocationResult(LocationResult result) 

とインターフェースLocationListenerは、単に1つの方法

abstract void onLocationChanged(Location location) 

LocationCallbackに追加の方法を無視して、これら二つの違いは何で定義:

抽象クラスLocationCallbackは二つの方法が定義されて?いくつかの概念上の違いや特別なユースケースは、他のものよりも好ましいものですか?機能を複製する根拠は何ですか?

答えて

11

あなたはonLocationResult()LocationResultを返すことに注意しましょう - あなたが適切setMaxWaitTime()を設定することで、ロケーション要求をバッチ処理している場合は、かなり頻繁に実行されます場合は - これは非常に簡単に同時に複数の場所の受信に対処することができます。

古いLocationListenerを使用する場合は、バッチ処理するときに複数のコールバックがonLocationChanged()に続けて送信されます。

+0

Hmm。このバッチ処理は興味深いものです。私がこの権利を取得したら、10秒の間隔でLocationRequestを作成し、MaxWaitTimeを100秒に設定してから、1つのLocationResultに10以上の場所をすべて取得できます。役に立つかもしれない。 Upvoted。 – f470071

+3

また、多くの最新の携帯電話では、バッチ処理はGPSチップ上で直接実行されるため、メインCPUがバッチ間でまったく目を覚ます必要がなくなるため、かなり優れたバッテリが改善されます。 – ianhanniballake

+2

私は知りたいことを正確に教えてくれる短い答えが大好きです! – Opus1217

関連する問題