我有一个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实现它,非常简单,而且库非常小。
答案 0 :(得分:0)
Otto / Eventbus可以为您完成这些工作。 Localbroadcast manager也是其中一个选项,在这种情况下不需要任何新的库依赖。