【问题标题】:How to manage retrofit between multiple android modules如何管理多个 android 模块之间的改造
【发布时间】:2016-10-22 17:32:11
【问题描述】:

我需要了解如何在每个模块与不同服务器通信的 android 应用程序中管理多个模块之间的改造。我的重点是所有模块都应该从缓存中受益,但每个模块可能有不同的配置(即 headers 和 base_url)。
例如:
我在一个 android 项目中有 3 个子模块。 submodule1 依赖于 submodule2 submodule3 依赖于 submodule2

submodule1 与 server1 对话 submodule2 与 server2 对话 submodule3 与 server3 对话

是否可以进行单个改造实例并按需更改配置,或者是否有其他解决方案?

【问题讨论】:

  • 构建改造实例是一项昂贵的操作。也许最好有 3 次不同的一次
  • 你是否使用 Dagger 进行依赖注入?

标签: android retrofit okhttp


【解决方案1】:

在我的情况下,我为不同的模块使用不同的改造实例和连接器:

public static NetworkConnector getRetrofit1() {
    if (ZivaURLs.retrofitNetworkHandler1 == null) {
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(Date.class, new GsonDateDeSerializer());
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ZivaURLs.HOST_1)
                .addConverterFactory(GsonConverterFactory.create(gsonBuilder.create()))
                .build();
        retrofit.client().setReadTimeout(40, TimeUnit.SECONDS);
        retrofit.client().setWriteTimeout(40, TimeUnit.SECONDS);
        retrofit.client().setConnectTimeout(40, TimeUnit.SECONDS);
        ZivaURLs.retrofitNetworkHandler1 = retrofit.create(NetworkConnector1.class);
    }
    return ZivaURLs.retrofitNetworkHandler1;
}

现在我为每个模块使用不同的连接器接口,只是为了让我的代码更简洁,并且易于更改/升级。

希望对你有帮助:)

【讨论】:

  • 感谢您的快速帮助。我会验证这一点并相应地标记你的答案。
  • @pavankumar 如果对您有帮助,请标记答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 2018-08-10
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多