gpt4 book ai didi

Android IntentService 将数据返回给 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:53 26 4
gpt4 key购买 nike

我有一个 Activity (ListActivity),如果用户点击一个按钮,我会启动一个“IntentService”的 Intent ,它基本上对 Web 服务进行 REST 调用并收集数据。我的问题是,一旦服务完成,我就会在 Activity 中填充项目列表,这只是一个静态变量。但是,我无法启动 listadaptor 以要求它在数据更改时刷新 View 。有人能告诉我如何在 IntentService 完成任务后“通知” Activity 刷新吗?

最佳答案

如果您正在进行 REST 调用,我建议您使用 IntentService 而不是 AsyncTask。 AsyncTask 看起来不错而且很有用,但需要格外小心,不要泄漏上下文并将结果返回到可能早已消失的 Activity,这使得它不太容易正确使用。

请观看此演示文稿以获得非常有用的指南:

http://www.youtube.com/watch?v=xHXn3Kg2IQE

编辑:至于发回结果,您可以包含一个包裹 ResultReceiver在您启动 IntentService 的 Intent 中,并使用 .send() 通知 Activity(并在那里处理适配器刷新)

至于刷新 ListAdapter,这实际上取决于您使用的是哪种类型。如果它是一个简单的适配器,您可以使用

getListView().setAdapter(adapter)

但使用 CursorAdapter 会好很多并简单地调用

context.getContentResolver().notifyChange(uri, null);

其中上下文是您的 IntentService 的上下文。

希望对您有所帮助!

关于Android IntentService 将数据返回给 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5684261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com