2011年2月11日金曜日

Android Service and Looper and Handler

 GPS は有限のハードウェアリソースなので、requestLocationUpdates を使わないといけないかと考えていたが、どうも LocationManager.getCurrentLocation(provider) で取得できるようだ。であれば、定期的に自前でポーリングして、ステータス等もチェックすれば、Looper や Handler の問題には遭遇しない。また、こっちの方がコードもシンプルに書ける。

 冷静に考えてみると、Handler の問題が無ければ、わざわざサービス化しなくても、スレッドだけで対処できるはずである。requestLocationUpdates は、フロントエンドなアプリだけに有効な手法なのだと思う。しかし、ガッツリと1日かけてサービス対応にしたので、もう戻れない…。プロトタイプのつもりで書いていたので、リビジョン管理すらしていないです…。ちゃんとリポジトリ用意しとけば良かった orz。

追記:やられた、getCurrentLocation って、SDKから、消滅してんじゃん…。途中でロケーションの取得間隔を変更したいのに、詰んでるじゃん…。ハンドラ使うしかねぇよ。

0 件のコメント: