我正在为API级别10(2.3.3)开发一个Android应用程序。在我的应用程序中,有一个搜索栏可用,其值为0-25。
我的问题是当我在搜索栏上进展时,我正在更新多个视图。由于视图只能从UI线程更新,因此所有视图同步更新意味着一个接一个。意味着我可以看到该视图正在更新。我的更新不需要任何后台工作。
所以我的问题是有没有办法同时更新视图?例如,如果我有15个视图,是否可以同时更新所有视图,例如跨越一些线程?
提前致谢。
答案 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个操作。