我有一个包含 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);
}
最佳答案
使用 AsyncTasks 或将您的 Handler 附加到另一个 Looper 线程。
关于android - 当我的服务运行 TimerTask 时,如何防止 UI 挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8768612/