好吧,所以我知道如何做一个后台任务,我知道如何做周期性的任务(使用handle postdelayed和runnable),我也知道如何从后台线程(通过处理程序)做UI任务,但我不能执行定期后台任务,在UI线程上执行一些操作。Android:创建一个定期运行并执行UI任务的后台线程?
我想执行一些后台任务,每分钟我都必须进行网络调用。通话结束后,根据输出我必须更新UI。我试图做这样的事情
private void DoTask() {
Thread thread = new Thread() {
public void run() {
Looper.prepare();
final Handler handler = new Handler();
handler.post(netRunnable);
Looper.loop();
}
};
thread.start();
}
Runnable netRunnable = new Runnable() {
@Override
public void run() {
handler.getLooper().prepare();
final Handler handler1 = new Handler(Looper.getMainLooper());
if (do background work and check result){
handler1.post(new Runnable() {
@Override
public void run() {
//Do UI Task
}
});
}
handler.getLooper().loop();
handler.postDelayed(netRunnable, 60000);
}
}
据我了解,有可能是我的执行一些基本的缺陷,但我不知道如何正确地做这个任务。现在它给出的错误是Only one Looper may be created per thread
。我得到它想说的。但任何人都可以请建议以正确的方式做到这一点。
检查此帖:http://stackoverflow.com/a/15472594/4516174 – yongsunCN