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