我有一个开始的线程,onCreate()
这个线程获取一些数据。是否有可能在线程终止之前应该能够更新ListView
?
现在由于线程不是 UI 线程,它不能直接更新 listview 数组适配器。
有出路吗?我在想是否有可能触发一个Handler
从线程,其可运行在主 UI 线程上执行。
我有一个开始的线程,onCreate()
这个线程获取一些数据。是否有可能在线程终止之前应该能够更新ListView
?
现在由于线程不是 UI 线程,它不能直接更新 listview 数组适配器。
有出路吗?我在想是否有可能触发一个Handler
从线程,其可运行在主 UI 线程上执行。
不确定我是否完全理解您的问题,但我相信有两种方法可以实现您想要的:
1-启动AsyncTask而不是线程。AsyncTaskonPostExecute()
将在 UI 线程中运行,这意味着您可以在其中执行任何与 UI 相关的操作。您可以在 onCreate() 中启动 AsyncTask,一旦完成,它会在您的活动上调用一个方法,该方法执行以下操作:
myAdapter.notifyDataSetChanged();
2- 使用runOnUIThread()
使用您的活动runOnUiThread(Runnable action)