使用 AsyncTask 序列化执行多个片段

Serializing execution of multiple fragments using AsyncTask

我有一个包含 2 个片段的 activity,分别称为 A 和 B。片段 A 有一个 AsyncTask,用于将来自 Internet 的一些数据解析为自定义对象数组并填充其界面。片段 B 也必须使用此数组来更新其界面。问题是,我如何确保片段 A 在片段 B 出现并使用数据之前完成其工作(通过完成 AsyncTask)?

问:如何确保片段 A 完成其工作(通过完成 AsyncTask)

答:您可以在单例 class 中设置一个标志,该标志可以在异步任务的 onPostExecute 上更新。

如果您正在使用异步任务,那么 AsynconPostExecute() 方法放置显示 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 可以在两个片段之间进行通信。