如何从后台服务更新Listview

时间:2016-06-09 06:49:31

标签: android

我有从服务器下载图像的后台服务。我希望在下载完成后更新我的UI或ListView。想要将按钮上的文本更改为“已下载”。请帮帮我 提前致谢

2 个答案:

答案 0 :(得分:0)

您可以通过后台服务广播来接收主线程所说的活动。然后,从onRecieve()方法,您可以通过更新模型并调用适配器的ListView来更新notifyDatasetChanged()

广播接收器的示例 http://www.tutorialspoint.com/android/android_broadcast_receivers.htm

或者你可以将主线程的处理程序传递给service usnig intent,并可以通过使用该处理程序在主线程上发布消息来更新主线程或listview

处理者的例子
https://developer.android.com/training/multiple-threads/communicate-ui.html

答案 1 :(得分:-1)

您无法从后台线程更新视图! 下载完图像后需要调用: 您可以阅读this

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        // refresh list 
    }
});