使用 AsyncTask 序列化执行多个片段
Serializing execution of multiple fragments using AsyncTask
我有一个包含 2 个片段的 activity,分别称为 A 和 B。片段 A 有一个 AsyncTask,用于将来自 Internet 的一些数据解析为自定义对象数组并填充其界面。片段 B 也必须使用此数组来更新其界面。问题是,我如何确保片段 A 在片段 B 出现并使用数据之前完成其工作(通过完成 AsyncTask)?
问:如何确保片段 A 完成其工作(通过完成 AsyncTask)
答:您可以在单例 class 中设置一个标志,该标志可以在异步任务的 onPostExecute
上更新。
如果您正在使用异步任务,那么 Async
的 onPostExecute()
方法放置显示 fragment B
的代码。这样它将确保在完成 fragment A
的任务后 fragment B
将显示。
protected void onPostExecute(String result){
//Code for fragment A to show data in UI
// code for showing fragment B
}
1) 你可以使用事件总线进行通信(开始时很复杂,但会帮助你长期-运行)
在 android
上实现事件总线的热门库
2) 您还可以在每个可以附加 activity 的片段上使用侦听器。 Activity 可以在两个片段之间进行通信。
我有一个包含 2 个片段的 activity,分别称为 A 和 B。片段 A 有一个 AsyncTask,用于将来自 Internet 的一些数据解析为自定义对象数组并填充其界面。片段 B 也必须使用此数组来更新其界面。问题是,我如何确保片段 A 在片段 B 出现并使用数据之前完成其工作(通过完成 AsyncTask)?
问:如何确保片段 A 完成其工作(通过完成 AsyncTask)
答:您可以在单例 class 中设置一个标志,该标志可以在异步任务的 onPostExecute
上更新。
如果您正在使用异步任务,那么 Async
的 onPostExecute()
方法放置显示 fragment B
的代码。这样它将确保在完成 fragment A
的任务后 fragment B
将显示。
protected void onPostExecute(String result){
//Code for fragment A to show data in UI
// code for showing fragment B
}
1) 你可以使用事件总线进行通信(开始时很复杂,但会帮助你长期-运行)
在 android
上实现事件总线的热门库2) 您还可以在每个可以附加 activity 的片段上使用侦听器。 Activity 可以在两个片段之间进行通信。