Android 当服务完成其工作时,如何刷新ListView?

Android 当服务完成其工作时,如何刷新ListView?,android,android-listview,android-service,android-arrayadapter,Android,Android Listview,Android Service,Android Arrayadapter,我正在开发一个应用程序,其中我有一个通过服务执行的后台任务。我有一个列表,其中显示了一些数据元素。我的设想是: 1-用户将某些内容设置为在bg中执行,但不会关闭应用程序并使其保持此状态 2-后台进程开始工作,它完成工作并完成。但列表仍显示用户输入的任务。它应该从列表中删除 这正是我想要实现的功能。我怎样才能做到这一点 记住如果用户执行一些操作,如导航到其他屏幕等,我已经对其进行了编码,以获取新列表供查看。但若用户在调度某些内容后使其处于空闲状态,则视图不会刷新。请帮我解决这个问题。非常感谢您的帮

我正在开发一个应用程序,其中我有一个通过服务执行的后台任务。我有一个列表,其中显示了一些数据元素。我的设想是:

1-用户将某些内容设置为在bg中执行,但不会关闭应用程序并使其保持此状态

2-后台进程开始工作,它完成工作并完成。但列表仍显示用户输入的任务。它应该从列表中删除

这正是我想要实现的功能。我怎样才能做到这一点

记住如果用户执行一些操作,如导航到其他屏幕等,我已经对其进行了编码,以获取新列表供查看。但若用户在调度某些内容后使其处于空闲状态,则视图不会刷新。请帮我解决这个问题。非常感谢您的帮助。

在列表适配器上调用notifyDataSetChanged()

notifyDataSetChanged()通知连接的观察者基础数据已更改,任何反映数据集的视图都应刷新自身


。公认的答案是链接有很好的解释。

我认为您必须使用BroadcastReceiver服务来解决您的问题

// Register Broadcast Receiver
        IntentFilter filter = new IntentFilter(MyService.MYOWNACTIONFILTER);
        registerReceiver(myReceiver, filter);
在服务中,您需要发送

Intent intent = new Intent();
    // Bundle the counter value with Intent
    intent.putExtra("key", data);
sendBroadcast(intent); // finally broadcast
后台操作完成后

最后

在您的服务呼叫活动中

private BroadcastReceiver myReceiver = new BroadcastReceiver() {

    public void onReceive(Context context, Intent intent) {
           // do your operation and refresh the list
        }
   }
希望这能奏效