后台线程可以在android中的UI线程上触发消息处理程序

时间:2013-06-22 12:50:09

标签: android

我有一个在onCreate()中启动的线程,该线程获取一些数据。 是否有可能在线程终止之前应该能够更新ListView

现在因为线程不是UI线程,所以它不能直接更新listview数组适配器。

有出路吗? 我在想,是否有可能从其主要UI线程上执行runnable的线程触发Handler

2 个答案:

答案 0 :(得分:1)

不确定我是否完全理解了您的问题,但我相信有两种方法可以实现您的目标:

1-启动AsyncTask而不是线程。 AsyncTask的onPostExecute()run in the UI thread,这意味着你可以在那里做任何与UI相关的事情。您可以在onCreate()中启动AsyncTask,一旦完成,它会调用您的活动上的方法:

myAdapter.notifyDataSetChanged();

2-使用runOnUIThread()

答案 1 :(得分:0)

使用您的活动runOnUiThread(Runnable action)

link