LocationManager
リスナーを使用して場所を取得するサービスを作成しました。
現在、更新を取得するためにアクティビティに入札していますが、アプリが初めて実行されdoBindService
、UIがしばらくスタックしていると呼び出します。
私はそれを中に入れようとしましたが、そのように すると、別のスレッドを実行している可能性があるThread
ため、UIが更新されません。doBindService
メッセージをIncomingHandler
取得してUIを更新するがあります。
何が悪いのかしませんか?
doBindService
コード
public void doBindService(){
bindService(
new Intent(MyActivity.this,
LocationService.class),
mConnection,
Context.BIND_AUTO_CREATE
);
mIsBound = true;
}
IncomingHandler
コード
class IncomingHandler extends Handler {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case LocationService.MSG_GET_LOCATION:
UserLocation userLoc = (UserLocation)msg.obj;
locationTxt.setText(userLoc.getUserLocation().trim());
locationTxt.startAnimation(fadeOutLoc);
break;
default:
super.handleMessage(msg);
}
}
}
アップデート
現在の位置情報を10秒ごとにアプリケーションに保存しようとしています。これにより、UIがスタックする可能性があります。だから誰かが私の位置データをデータベースに定期的に保存する方法を教えてもらえますか?私のUIはスタックしません。