【问题标题】:Serializing execution of multiple fragments using AsyncTask使用 AsyncTask 序列化多个片段的执行
【发布时间】:2015-06-08 10:32:31
【问题描述】:

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

【问题讨论】:

    标签: android android-activity android-asynctask fragment


    【解决方案1】:

    问:我如何确保 Fragment A 完成它的工作(通过完成 AsyncTask)

    答:您可以在 sigleton 类中设置一个标志,该标志可以在您的 asynctask 的 onPostExecute 上更新。

    【讨论】:

    • 虽然还有一些问题,但我明白了。我将您的答案标记为正确,因为您先回答。
    【解决方案2】:

    1) 您可以使用事件总线进行通信(一开始很复杂,但从长远来看会对您有所帮助)

    在 android 上实现事件总线的流行库

    2) 您还可以在每个可以附加活动的片段上使用侦听器。 Activity 可以在两个 Fragment 之间进行通信。

    【讨论】:

    • 事件总线看起来很复杂,但我会看看它!谢谢!
    【解决方案3】:

    如果您使用的是异步任务,那么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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      相关资源
      最近更新 更多