最佳答案
我正在尝试使用匕首2来执行一个登录操作
以下是我如何设置“改造依赖项”
@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient client) {
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson)
.client(client)
.baseUrl(application.getUrl())
.build();
return retrofit;
}
这是 API 接口。
interface LoginAPI {
@GET(relative_path)
Call<Boolean> logMe();
}
我有三个不同的基本网址用户可以登录。因此,我不能设置一个静态的网址,同时设置龟裂依赖。我在 Application 类上创建了一个 setUrl ()和 getUrl ()方法。在用户登录时,我在调用 API 调用之前将 URL 设置为 Application。
我使用延迟注射进行这样的改造
Lazy<Retrofit> retrofit
那样的话,匕首只有在我能打电话的时候才会注入依赖性
retrofit.get()
这部分很好用。我把网址设置为改进依赖关系。然而,当用户输入错误的基本 url (比如 mywifi.domain.com ) ,理解错误的 url 并修改它(比如 mydata.domain.com )时,问题就出现了。因为匕首已经创建了改造的依赖,它不会再做。 所以我必须重新打开应用程序,输入正确的网址。
我阅读了不同的文章,建立动态网址的逆转使用匕首。对我来说,没有一件事是真正有效的。我错过什么了吗?