具有两个片段的Android MVP共享同一数据

具有两个片段的Android MVP共享同一数据,第1张

概述我的应用程序有一个活动和两个片段.该活动仅用作片段容器.片段之一将数据显示为文本.第二个片段显示与图表相同的数据.此数据来自远程JSONAPI.就像在MVP中一样,我们必须为每个视图(模块,模型,演示者,存储库…)复制相同的结构,我的应用向每个片段从JSONAPI请求数据,所以需要两次.

我的应用程序有一个活动和两个片段.该活动仅用作片段容器.片段之一将数据显示为文本.第二个片段显示与图表相同的数据.此数据来自远程JSON API.就像在MVP中一样,我们必须为每个视图(模块,模型,演示者,存储库…)复制相同的结构,我的应用向每个片段从JsON API请求数据,所以需要两次.我如何才能拥有一个更高效的体系结构,让我尊重MVP?

参见下面为我的两个片段实现的代码:

模组

@Modulepublic class PollutionLevelsModule {    @ProvIDes        public PollutionLevelsFragmentMVP.Presenter provIDePollutionLevelsFragmentPresenter(PollutionLevelsFragmentMVP.Model pollutionLevelsModel) {        return new PollutionLevelsPresenter(pollutionLevelsModel);    }    @ProvIDes    public PollutionLevelsFragmentMVP.Model provIDePollutionLevelsFragmentModel(Repository repository) {        return new PollutionLevelsModel(repository);    }    @Singleton    @ProvIDes    public Repository provIDeRepo(PollutionAPIService pollutionAPIService) {        return new PollutionLevelsRepository(pollutionAPIService);    }}

资料库

public class PollutionLevelsRepository implements Repository {    private PollutionAPIService pollutionAPIService;    public PollutionLevelsRepository(PollutionAPIService pollutionAPIService) {        this.pollutionAPIService = pollutionAPIService;    }    @OverrIDe    public Observable<Aqicn> getDataFromNetwork(String city, String authToken) {        Observable<Aqicn> aqicn = pollutionAPIService.getPollutionObservable(city, authToken);        return aqicn;    }}

解决方法:

您必须在活动中使用MVP,以便仅对JsON API进行一次请求,然后从该活动中注册的所有片段都可以获取该请求.

总结

以上是内存溢出为你收集整理的具有两个片段的Android MVP共享同一数据全部内容,希望文章能够帮你解决具有两个片段的Android MVP共享同一数据所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121062.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存