之前在使用dagger2的时候,有关初始化的问题,什么样儿的类初始化的时候才应该写入Module中,我的答案是有参数,或者非无参构造方法初始化的类。
import android.content.Context;
import android.location.LocationManager;
import javax.inject.Singleton;
import cobra.data.net.NetworkService;
import cobra.presentation.CobraApplication;
import dagger.Module;
import dagger.Provides;
import static android.content.Context.LOCATION_SERVICE;
/**
* Created by cobra on 2015/8/29.
*/
@Module
public class ApplicationModule {
private final CobraApplication application;
public ApplicationModule(CobraApplication application) {
this.application = application;
}
@Provides
@Singleton
Context provideApplicationContext() {
return this.application;
}
@Provides
@Singleton
NetworkService provideNetworkService() {
return new NetworkService(application);
}
@Provides
@Singleton
LocationManager provideLocationManager() {
return (LocationManager) application.getSystemService(LOCATION_SERVICE);
}
}