2014-09-24 4 views
1

В моем приложении я использую Retrofit и передаю экземпляр ApiClient в соответствующем месте с помощью кинжала. Я читал, что RestAdapter.Builder.build() и adapter.create(Class class) стоят очень дорого. Поэтому я комментирую метод предоставления как @Singleton.Дооснащение + кинжал + разные конечные точки

Вот абстрактный код:

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

Все работало замечательно, но теперь мне нужно переключаться между несколькими поддоменами. То есть от http://subdomain1.domain.com до http://subdomain2.domain.com например.

Можно ли изменить конечную точку во время выполнения? Или я не должен использовать Дооснащение в этом случае ...

+0

Почему вам нужно использовать субдомены? Может быть, лучше иметь разные пути, а не поддомены. В случае субдоменов я предполагаю, что вам нужно будет создать различные службы дооснащения. – AlexKorovyansky

ответ

2

Per в Endpoint класс:

Вызывающие должны всегда консультироваться экземпляр для последних значений, а не кэширование возвращаемых значений.

Это означает, что вы можете изменить значение, когда вы вернетесь из getUrl() в собственном классе Endpoint реализации на основе сервера, который вы хотите подключиться.