我有一个我很确定很常见的情况,但我在任何教程中都没有找到解决方案。也许我以完全错误的方式处理这个问题。
我有一个提供改造服务的模块:
public static RestService providesRestService(){
Retrofit retrofit = new Retrofit.Builder().baseUrl("http://www.somedomain.com")
.addConverterFactory(GsonConverterFactory.create()).build();
return retrofit.create(RestService.class);
}
我希望可以通过属性文件配置基本 URL。要使用属性文件,我需要 Context 以便可以访问 AssetManager:
AssetManager assetManager = context.getAssets();
assetManager.open("somefile.properties")
...
所以我可以使用@ApplicationContext 注释:
public static RestService providesRestService(@ApplicationContext){
这应该适用于获取属性,但问题是我有另一个模块提供一个类来处理属性文件:
static PropertiesUtil providesPropertiesUtil(@ApplicationContext Context context) {
return new PropertiesUtil(context);
所以我想使用那个类,但我不能将 PropertiesUtil 注入另一个提供方法。
我接近这一切都错了吗?