我的应用程序有一个活动和两个片段.该活动仅用作片段容器.片段之一将数据显示为文本.第二个片段显示与图表相同的数据.此数据来自远程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共享同一数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)