我有一个活动(ListActivity),如果用户点击按钮,我会启动一个意图到“IntentService”,该服务基本上对Web服务进行REST调用并收集数据。
我的问题是,一旦服务完成,我就会在活动中填充项目列表,这只是一个静态变量。然而,我遇到了麻烦,无法启动listadaptor来要求它刷新视图,因为数据已更改。有人可以告诉我如何“通知”活动,在IntentService完成任务后刷新吗?
http://www.youtube.com/watch?v=xHXn3Kg2IQE
编辑:
关于发送结果,您可以在使用IntentService启动Intent时包含可包裹的ResultReceiver
,并使用.send()通知Activity(并在那里处理适配器刷新)。
至于刷新ListAdapter,这实际上取决于您使用的是哪种类型。如果它是一个简单的适配器,您可以使用交换它的方式来进行刷新。
getListView().setAdapter(adapter)
但是你使用CursorAdapter
会更好,只需调用它即可。
context.getContentResolver().notifyChange(uri, null);
其中,context是您的IntentService的上下文。
希望这有所帮助!