0

ログイン ページ (Android のアクティビティ) があり、その間に非同期タスクを実行して位置情報を取得します。ログインが成功するとすぐに、アプリを別のアクティビティにリダイレクトします。次のアクティビティに切り替えた後、場所の修正は利用できません。方法は次のとおりです。

コード:-

oncreate {
  ...
  AsyncTaskClass task;
  task.execute();
}

class AsyncTaskClass extends Async... {

  doInBackground () {
  locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locLstnr);
  }

  onPostExecute {
  //disable listener
  startActivity(nextPage);
  }
}

場所の修正がアプリによって要求されていることがわかります (タスクバーに GPS アイコンが表示されます) が、しばらくすると postExecute() が実行され、nextPage が読み込まれ、場所の修正が取得されません。場所の修正が確実に取得されるようにするにはどうすればよいですか? つまり、アクティビティを変更しても、位置情報がバックグラウンドで受信されていることを確認するにはどうすればよいですか?

4

1 に答える 1

1

getLastKnownLocation(LocationManager.GPS_PROVIDER)またはを使用して、最後に認識された場所を取得できますgetLastKnownLocation(LocationManager.NETWORK_PROVIDER)。位置情報の更新に登録したい場合は、もう少し注意が必要です。私は電話するだろう

requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener)

アプリの永続クラスから。私には、ロケーションマネージャーと呼ばれるクラスがあります。ロケーション マネージャーがロケーションの更新を取得すると、インターフェイスを使用して実装されたコールバック メソッドを介してアクティビティにロケーションを送信します。この質問を見てください... Android でユーザーの現在地を取得する最も簡単で堅牢な方法は何ですか?

于 2012-06-13T23:52:32.157 に答える