GPS は有限のハードウェアリソースなので、requestLocationUpdates を使わないといけないかと考えていたが、どうも LocationManager.getCurrentLocation(provider) で取得できるようだ。であれば、定期的に自前でポーリングして、ステータス等もチェックすれば、Looper や Handler の問題には遭遇しない。また、こっちの方がコードもシンプルに書ける。
冷静に考えてみると、Handler の問題が無ければ、わざわざサービス化しなくても、スレッドだけで対処できるはずである。requestLocationUpdates は、フロントエンドなアプリだけに有効な手法なのだと思う。しかし、ガッツリと1日かけてサービス対応にしたので、もう戻れない…。プロトタイプのつもりで書いていたので、リビジョン管理すらしていないです…。ちゃんとリポジトリ用意しとけば良かった orz。
追記:やられた、getCurrentLocation って、SDKから、消滅してんじゃん…。途中でロケーションの取得間隔を変更したいのに、詰んでるじゃん…。ハンドラ使うしかねぇよ。
0 件のコメント:
コメントを投稿