当异步https请求完成时,在viewpager中通知片段

时间:2017-07-23 14:28:32

标签: java android android-fragments okhttp3

我有一个AppUtils类来处理我的网络请求。在我的活动onCreate中,我调用了从xml初始化单例的函数。所有这一切都是使用okhttps3对服务器进行异步https发布请求并将XML响应反序列化为pojo(单例)。

 public static void initSingleton(String apikey)

该活动还有一个包含3个不同片段的viewpager,片段都有不同的视图,目标是使用单例数据填充视图。

当initSingleton完成工作时通知片段的最佳方法是什么,这样我可以相应地更新视图?

如果我只是使用Singleton.getInstance()。getWhatever()来获取片段onCreateView中的某个值,那么Singleton显然还没有初始化,所以它给了我一个nullpointerexception。

我尝试将Handler传递给函数,并在请求完成时发送消息。它有效,但我只能通知活动而不是片段。

非常感谢您的帮助。

干杯

编辑:有没有比通过它做更优雅的解决方案。处理程序然后用接口更新片段?也许是EventBus / Otto?

edit2:结束使用EventBus实现它,非常简单,而且库非常小。

1 个答案:

答案 0 :(得分:0)

Otto / Eventbus可以为您完成这些工作。 Localbroadcast manager也是其中一个选项,在这种情况下不需要任何新的库依赖。