【发布时间】:2011-11-25 12:28:28
【问题描述】:
我有两个活动,一个扩展ListView 的“EventsList”和一个“CreateEvent”活动。用户可以从列表中选择“事件”并在 CreateEvent 活动中对其进行编辑。当用户单击保存 CreateEvent 时,会生成一个 AsycTask 以将数据传送到 Web 服务,获取响应并将响应解析到数据库中。
我的问题是我不知道如何将 AsycTasks onPostExecute() 的结果传达给 EventsList 活动。我尝试在StartActivityForResult 上刷新列表,但此时线程通常还没有完成。
那么,如何将 AsyncTask(由 CreateEvent 产生)的结果传达给 EventsList 活动?我没有运气尝试使用自定义回调。
编辑
我真的不喜欢使用全局标志或adapter。我确信最好以某种方式使用回调/侦听器来完成。这样,只有在绝对必要时才会更改或通知列表。
【问题讨论】:
-
StartActivityForResult() 似乎是一个更好的方法。一个可能的解决方法是在您的 CreateEventActivity 中,启动 AsyncTask 后不要立即返回 EventsListActivity,而是向用户显示 ProgressDialog,等待 AsyncTask 完成,在 CreateEventActivity 中设置结果(),然后返回 EventsListActivity,不确定这是否有效,但是值得一试。
标签: android callback android-listview android-asynctask