用户界面在调用doBindService时卡住了

时间:2012-09-17 17:29:19

标签: android android-service android-location

我创建了一个使用LocationManager侦听器获取位置的服务。

现在我正在使用它进行活动以获取更新但我的应用程序第一次运行并致电doBindService我的用户界面被卡住了一段时间。

我试图把它放在Thread内,但这样就不会更新我的用户界面,因为doBindService可能正在运行不同的线程。

我有一个IncomingHandler来获取消息并更新我的用户界面。

我不是什么问题?

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卡住。所以有人可以建议我如何定期在数据库中存储我的位置数据,我的用户界面不会卡住。

0 个答案:

没有答案