如何在android中同时更新视图

时间:2012-07-04 11:32:41

标签: android android-view

我正在为API级别10(2.3.3)开发一个Android应用程序。在我的应用程序中,有一个搜索栏可用,其值为0-25。

我的问题是当我在搜索栏上进展时,我正在更新多个视图。由于视图只能从UI线程更新,因此所有视图同步更新意味着一个接一个。意味着我可以看到该视图正在更新。我的更新不需要任何后台工作。

所以我的问题是有没有办法同时更新视图?例如,如果我有15个视图,是否可以同时更新所有视图,例如跨越一些线程?

提前致谢。

3 个答案:

答案 0 :(得分:1)

正如您所说,更新只能从UI线程完成,UI线程只能处理一个视图。所以你别无选择,只能逐一更新它们。但是如果你把所有更新都放在一个可运行的中,你通常不应该看到更新的过程。

答案 1 :(得分:0)

不确定是否询问此问题,但AsyncTask和doInBackground适用于此。完成后台任务时,您也可以从onPostExecute更新搜索栏。但你需要携带具有搜索栏的上下文。

答案 2 :(得分:0)

这是不可能的。

让我们考虑您实际上可以从UI线程外部更新UI组件(您不能),即使这不是同时的。

假设线程1进行100次操作 t1o1 t1o2 ,..., t1o100 ,线程2进行 t2o1 t2o2 ,..., t2o100

如果你同时运行它们,它们将按照类似于以下的顺序执行:

<强> t1o1

t2o1

<强> TiO 2

<强> t1o3

t2o2

....

两个线程同时运行,但没有同时执行2个操作。