3

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

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

所以我的问题是有什么方法可以同时更新视图?意味着例如,如果我有 15 个视图,我可以像跨越某个线程一样同时更新所有视图吗?

提前致谢。

4

3 回答 3

1

正如您所说,更新只能从 UI 线程完成,而 UI 线程只能处理一个视图。所以你别无选择,只能一一更新。但是如果你把所有的更新都放到一个runnable中,你通常不会看到更新的过程。

于 2012-07-04T12:07:39.360 回答
0

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

于 2012-07-04T11:39:00.337 回答
0

这是不可能的。

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

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

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

t1o1

t2o1

t1o2

t1o3

t2o2

……

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

于 2012-07-04T12:19:41.373 回答