2015-02-05 83 views
-1

我正在开发应用程序,每8秒更新一次数据,并使用异步任务完成更新。我使用的循环来达到这个条件Thread.Sleep问题Android方法和asynctask

while(const_val > update_val) { 
new Asynctask().execute(); 
Thread.sleep(8000); 
} 

const_val将是恒定的,将不受任何其他methods.lets改变说这个值将是5.update_val将被更新和递减时的AsyncTask调用,让我们该值将为10.因此,while循环会执行,直到条件为真,并调用asynctask,sleep。

当我在上面使用while循环的一般方法则UI被锁定,如果我用同样的循环在另一个的AsyncTask出现了一个错误,说

回答

2
“创建视图层次可以触摸它认为只有原来的线程”

您需要更改代码才能启动AsyncTask,并通过onPostExecute()方法提供更新。通过调用Thread.sleep()你正在睡觉你的应用程序的主线程(或UI线程),这是不好的。你永远不想阻止主线程。本文可能会帮助您更好地了解AsyncTask和Android中的线程处理:http://po.st/Cei3m2