【发布时间】:2018-02-27 17:17:08
【问题描述】:
我应该缓存 Retrofit 生成的对象还是建议动态创建?
我开始从旧的网络框架逐步迁移到 Retrofit,它从一个非常基本的逻辑开始,用于缓存 Retrofit 创建的实例。这是由于我们的架构将在不同的活动/片段中使用不同的端点,当用户访问应用程序的不同部分时将调用此方法:
static public <T> T getApi(Class<T> apiInterface) {
validateInitialization("getApi()");
if (!mApis.containsKey(apiInterface.getSimpleName())) {
mApis.put(apiInterface.getSimpleName(), retrofit().create(apiInterface));
}
return (T) mApis.get(apiInterface.getSimpleName());
}
但是,随着我们继续迁移我们的架构以使用 Retrofit,此地图的大小正在增加(目前可以创建大约 20 个不同的接口/api)并且有时包含不再使用的实例。
【问题讨论】:
-
带有 dagger2 的单例并在需要的地方注入。 github.com/googlesamples/android-architecture-components/blob/… 有帮助吗?
标签: android performance caching retrofit retrofit2