gpt4 book ai didi

两个 fragment 共享相同数据的 Android MVP

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:22 25 4
gpt4 key购买 nike

我的应用有一个 Activity 和两个 fragment 。该 Activity 仅用作 fragment 容器。其中一个 fragment 将数据显示为文本。第二个 fragment 显示与图表相同的数据。此数据来自远程 JSON API。与在 MVP 中一样,我们必须为每个 View (模块、模型、演示者、存储库...)复制相同的结构,我的应用程序从 JSON API 请求每个 fragment 的数据,所以两次。我怎样才能拥有一个更高效的架构,让我尊重 MVP?

请参阅下面为我的两个 fragment 实现的代码:

模块

@Module
public 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;
}
}

最佳答案

您必须在您的 Activity 中使用 MVP,以便只对 JSON API 执行一次请求。之后,从该 Activity 注册的所有 fragment 都可以获得该请求。

关于两个 fragment 共享相同数据的 Android MVP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43447863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com