2011-08-12 11 views
0

私はこの簡単な疑いを持っていました。
電話機の位置情報が更新されると、進行状況ダイアログが表示されます。
別のスレッドでこれを行う必要がありますか、または別のスレッドで既に実行されているgetLastKnownLocationはありません。
誰かが小さなサンプルコードを投稿してください、これを行う最も効果的な方法はありますか?
私はアンドロイドのapiのソースを通過し、作業を見つけることに成功しませんでした。getlastknownlocationは別のスレッドで実行されますか?

答えて

0

getLastKnownLocationは、同期して実行され、実際に現在の場所(実際には必要なもの)を取得しません。 http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation%28java.lang.String%29

ハイライト:ここにドキュメントがある

は、指定されたプロバイダから取得した最後の既知の場所 fixからのデータを示す位置を返します。これは、 プロバイダーを開始せずに行うことができます。このデバイスの電源を切って別の の場所に移動した場合、この場所は古くなっている可能性があります(例: )。

プロバイダが現在無効になっている場合は、nullが返されます。あなたはおそらく欲しい

は、この質問の線に沿ってもっと何かである:displaying progress dialog at the start of a gps application

+0

は、あなたの答えをいただき、ありがとうございます。ただし、あなたが提案したリンクは10秒ごとに位置の更新を要求します。私はちょうど場所に1つの更新がほしい。そのため、私はgetLastKnownLocationを使用しています。これを行うより良い方法はありますか?必要以上に場所の更新を要求することで、ユーザーのバッテリーをほとんど使用しないことが不可欠です。 – Brahadeesh

+1

@Brahadeesh [requestSingleUpdate](http://developer.android.com/reference/android/location/LocationManager.html#requestSingleUpdate%28java.lang.String,%20android.app.PendingIntent%29)も可能です。 – Kiril

+0

requestSingleUpdateを同期または非同期で実行しますか? – Brahadeesh

関連する問題