Retrofitによって生成されたオブジェクトをキャッシュする必要がありますか、またはオンザフライで作成することをお勧めしますか?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());
}
我々はスキーマが改修を使用するように移行し続けて:これは、異なる活動/断片的に異なるエンドポイントを使用する当社のアーキテクチャに起因して、この方法は、アプリのユーザーの訪問異なる部分として呼び出されますこのマップはサイズが増加しています(現在、約20の異なるインタフェース/ apiを作成できます)。また、使用されなくなったインスタンスが含まれることもあります。
シングルトンとdagger2と必要なところに注入します。 https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/di/AppModule.javaは役に立ちますか? – Raghunandan