我创建了一个使用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 不会卡住。