如何修改由于大量修改而在主要的其他线程中修改UI的视图

时间:2015-02-03 21:09:18

标签: android multithreading user-interface android-anr-dialog

我有以下问题。我正在开发一种消耗服务器数据的移动解决方案。对于这些HTTP事务,我显然使用AsyncTask来将此通信任务与主线程分开。但是,在成功响应之后,我需要构建一个真正的大表格布局(具有2000 - 10000个表行或更多)来插入数据内部的所有记录。因此,如果我开始在主线程中构建表,我将始终遇到ANR问题(应用程序无响应对话框)。

另一方面,众所周知,我不能修改/添加/触摸不是UI线程的不同线程中的元素,所以我无法进行这种繁重的表处理。

听到了建议。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用分页存档它,您可以先显示20行,向下滚动到达底部,添加20个元素的其他块,依此类推。

答案 1 :(得分:0)

为什么不使用onPostExecute的{​​{1}}方法来完成此操作?您可以在AsyncTask中执行所有繁重的处理,然后在完成后,只需更新在doInBackground上运行的用户界面onPostExecute中的用户界面。您可以在此处找到有关Thread的更多信息:http://developer.android.com/reference/android/os/AsyncTask.html