【问题标题】:Where to keep Retrofit Adapter in Android App?Android App 中的 Retrofit Adapter 放在哪里?
【发布时间】:2014-02-10 06:58:45
【问题描述】:

我不清楚 Refrofit 适配器和 API 类应该放在 Android 中的什么位置?我应该使用 Application 类还是 Singleton 来保留适配器? API接口类怎么样?

  RestAdapter myRestAdapter;   // where should I keep this guy?

 MyAPI mApi = myRestAdapter.create(MyAPI.class);  // and how about this guy?

我有一些不同的 api,例如 MyApi1、MyApi2,它们在应用程序的不同点在片段内部被调用。

谢谢

【问题讨论】:

    标签: android rest retrofit


    【解决方案1】:

    这两个都应该被视为单例,并且只创建一次。

    RestAdapter 包含公共请求执行器、共享的 HTTP 客户端配置、远程服务信息等。这些应该为每个 API 接口共享。

    API 接口也应该是单例的。它们是线程安全的,并且在创建时需要一些初始处理(最少,但非零)。

    【讨论】:

    • 您的回答很好,但您确实提到了放置它们的最佳位置。在应用程序中保留一个 RestAdapter 的单例实例是一个好主意吗?并在 onCreate() 方法中构建()它? API 接口又如何呢?我应该在活动中实例化它们吗?我也有同样的疑问,我错过了这类文档。最好的!
    【解决方案2】:

    Retrofit 1.7 不允许执行特定于请求的操作,特别是RequestInterceptor。正因为如此,我使用了一个单例映射,其中每个 API 都有自己的RestAdapter。通过这种方式,我可以控制特定于 API 的 Headers 等。

    如果需要,我还让我的库的使用者能够为一次性场景创建本地 API+RestAdapter 组合。

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多