1. ホーム
  2. android

Androidでサービス経由でGPS位置情報を取得する

2023-10-31 22:56:19

質問

バックグラウンドサービスを使用してユーザーの位置を監視し、それらをロードしてユーザーにパスを表示する必要があります。

アクティビティを使用すると、GPSの位置を取得するのは非常に簡単でしたが、サービスを介してそれを行うようになったとき、私はそれがルーパースレッド(またはそのような何か)に対してのみ動作するように見えるので、問題に遭遇しました。

解決策をネットで検索していると、多くの人が同じ問題を抱えていることがわかりましたが、うまくいく解決策は見つかりませんでした。prepare->loop->quit を使用する必要があると言う人もいますし、handlerThread を使用する必要があると言う人もいますが、それでも、そのようなことを適切な方法で行う方法を見つけることができません。

どのように解決するのでしょうか?

OK、私はサービスのonCreateにハンドラを作成し、それを介してgps関数を呼び出すことによって、それを解決しました。

コードはこのように簡単です。

final handler=new Handler(Looper.getMainLooper()); 

そして、UI上で強制的に実行させるために、私は post をかける。