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