好吧,所以我知道如何做一個後臺任務,我知道如何做週期性的任務(使用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