1

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はスタックしません。

4

0 に答える 0