改造+匕首+不同的终点

时间:2014-09-24 10:11:44

标签: android retrofit dagger

在我的应用程序中,我使用Retrofit并通过Dagger在适当的位置传递ApiClient的实例。我读过RestAdapter.Builder.build()adapter.create(Class class)非常昂贵。所以我将提供方法注释为@Singleton。

这是抽象代码:

@Provides
@Singleton
ApiClient provideRestClient() {
  ...
  return adapter.create(ApiClient.class)
}

一切都很好,但现在我需要在几个子域之间切换。即例如,从http://subdomain1.domain.comhttp://subdomain2.domain.com

我可以在运行时更改端点吗?或者在这种情况下我不应该使用Retrofit ......

1 个答案:

答案 0 :(得分:2)

根据Endpoint类:

  

调用者应始终查询实例以获取最新值,而不是缓存返回的值。

这意味着您可以根据要连接的服务器更改自己的getUrl()实现类中从Endpoint返回的值。