我有一个包含 Timer 和 TimerTask 的服务,用于在一段时间内从 Webservice 接收数据。当我的 TimerTask 运行时,UI 会挂起,直到 Web 服务进程完成。如何将我的任务放在一个线程中以防止 UI 挂起?
我的代码:
Timer timerSyncFull = new Timer();
class taskSyncFull extends TimerTask {
@Override
public void run() {
hSyncFull.sendEmptyMessage(0);
}
};
final Handler hSyncFull = new Handler(new Callback() {
@Override
public boolean handleMessage(Message msg) {
procSyncFull();
return false;
}
});
public void procSyncFull() {
try {
// My webservice process
} catch (Exception e) {
}
}
@Override
public void onStart(Intent intent, int startId) {
timerSyncFull = new Timer();
timerSyncFull.schedule(new taskSyncFull(), 5*60*1000,
5*60*1000);
}