0

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

1- 用户在 bg 中设置了要执行的内容,并且不关闭应用程序并将其保持在此状态。

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

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

请记住,如果用户执行一些操作,例如导航到其他屏幕等,我已经对其进行了编码以获取新列表以供查看。但是,如果用户在安排某些事情后让它闲置,则视图不会刷新。请帮我解决这个问题。任何帮助表示赞赏。

4

2 回答 2

0

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

notifyDataSetChanged() 通知附加的观察者底层数据已更改,任何反映数据集的视图都应自行刷新。

安卓。notifyDataSetChanged() 方法和 ListViews 是如何工作的?. 接受的答案是链接有一个很好的解释。

于 2013-03-13T12:21:49.013 回答
0

我认为您必须使用 Service 和 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
        }
   }

希望这会奏效。

于 2013-03-13T13:02:44.927 回答