我正在为 API 级别 10 (2.3.3) 开发一个 android 应用程序。在我的应用程序中,有一个可用的搜索栏,其值介于 0-25 之间。
我的问题是当我在搜索栏上进行时,我正在更新多个视图。由于视图只能从 UI 线程更新,所有视图同步更新意味着一个一个。意味着我可以看到该视图正在更新。我的更新不需要任何后台工作。
所以我的问题是有什么方法可以同时更新视图?意味着例如,如果我有 15 个视图,我可以像跨越某个线程一样同时更新所有视图吗?
提前致谢。
我正在为 API 级别 10 (2.3.3) 开发一个 android 应用程序。在我的应用程序中,有一个可用的搜索栏,其值介于 0-25 之间。
我的问题是当我在搜索栏上进行时,我正在更新多个视图。由于视图只能从 UI 线程更新,所有视图同步更新意味着一个一个。意味着我可以看到该视图正在更新。我的更新不需要任何后台工作。
所以我的问题是有什么方法可以同时更新视图?意味着例如,如果我有 15 个视图,我可以像跨越某个线程一样同时更新所有视图吗?
提前致谢。
正如您所说,更新只能从 UI 线程完成,而 UI 线程只能处理一个视图。所以你别无选择,只能一一更新。但是如果你把所有的更新都放到一个runnable中,你通常不会看到更新的过程。
不确定是否要询问此问题,但 AsyncTask 和 doInBackground 适用于此。此外,当后台任务完成后,您可以从 onPostExecute 更新搜索栏。但是您需要携带具有搜索栏的上下文。
这是不可能的。
让我们考虑一下,您实际上可以从 UI 线程外部更新 UI 组件(您不能),即使这不会同时进行。
假设线程 1 进行 100 次操作t1o1 , t1o2 , ..., t1o100,线程 2 进行t2o1 , t2o2 , ..., t2o100。
如果您同时运行它们,它们将按类似于以下的顺序执行:
t1o1
t2o1
t1o2
t1o3
t2o2
……
两个线程同时运行,但没有同时执行两个操作。