On 10月1日, 午前2:47, Hideki Yoshino <
hideki.yosh...@gmail.com> wrote:
> 下記のようなメッセージがでてませんか。
> Can't create handler inside thread that has not called Looper.prepare()
> requestLocationUpdatesはLooper.loopないからコールしないといけません。
>
> 解決策として、Looper.loopを自分でクラス内でクリエートする必要があります。
> 自分はThread内で以下のようにしています。
>
> class LocationListenerThread extends Thread {
> public void run() {
> Looper.prepare();
> mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
> 1000,
> 0,
> mLocationListener);
> Looper.loop();
> }
>
> }
>
>
>
>
>
>
> > いわたんと申します.
>
> > サービスから位置情報を取得しようとしています.
> > 位置情報はサービスを実装しているクラスとは別に位置情報取得用のクラスを実装しています.
>
> > Activityを実装したクラスから位置情報取得用クラスを使用した際には正常に動作したのですが,
> > サービスを実装したクラスから位置情報取得用クラスを使用すると,LocationManager.requestLocationUpdates()
> > を実行するとそこで位置情報取得用クラスが停止してしまいます.
> > ソースとしては以下のような擬似コードで実装をしています.
>
> > Log.d("location", "step 1");
> > this.mLocationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER,
> > 0, 0, this);
> > Log.d("location", "step 2");
>
> > Activityを実装したクラスからは位置情報取得用クラスを使用した際には,
> > DDMSに"step 1"と"step 2"が出力されました.
>
> > サービスを実装したクラスから位置情報取得用クラスを使用した際には,
> > DDMSでログの"step 1"は出力されるのですが,"step 2"が出力されませんでした.
> > その際にサービスを呼び出したActivityにログを出力するボタンを実装したところそちらは動作しました.
>
> > 原因が分からず困っているのですが,どなたか代替案や解決策をご存知のかたはご教示お願い致します.
>
> > --
> > このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> > このグループに投稿するには、
android-...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、
android-sdk-ja...@googlegroups.com にメールを送信してください。
> > 詳細については、
http://groups.google.com/group/android-sdk-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> Hideki Yoshino