Ho appena iniziato a utilizzare Dagger 2 oggi e sono un po 'confuso su come esattamente ho bisogno di impostare tutto.Android Dagger 2 Campo POJO Inietti null
Sto cercando di iniettare un POJO, ma è sempre nullo. In primo luogo, un po 'di codice:
App.java
private AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
appComponent = DaggerAppComponent
.builder()
.appModule(new AppModule(this))
.build();
}
public AppComponent component() {
return appComponent;
}
AppModule.java
@Module
public class AppModule {
private Application app;
public AppModule(Application app) {
this.app = app;
}
@Provides @Singleton
public Application application() {
return app;
}
}
AppComponent.java
@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
void inject(App application);
Application application();
}
NetworkingManager.java
@Singleton
public class NetworkingManager {
private Context ctx;
@Inject
public NetworkingManager(Context context) {
this.ctx = context;
}
}
NetModule.java
@Module
public class NetModule {
@Provides @Singleton
public NetworkingManager provideNetworkingManager(Application application) {
return new NetworkingManager(application);
}
}
NetComponent.java
@Singleton
@Component(modules = {NetModule.class},
dependencies = {AppModule.class})
public interface NetComponent {
void inject(NetworkingManager networkingManager);
}
SomeClass.java
@Inject
NetworkingManager networkingManager;
public void doSomethingWithNetworkManager() {
networkManager.doStuff();
}
Ho passato un bel po 'di tempo guardando attraverso un sacco di tutorial SO, domande ed esempi, ma non sono stato in grado di capire cosa sto facendo male.
Sono sicuro al 99% che ho qualcosa di sbagliato, ma non sono stato in grado di capire cosa.
Sembra che tu abbia un po 'di confusione. Qual è il tuo obiettivo? Dove stai cercando di usare 'NetworkingManager'? – Emmanuel
NetworkManager è attualmente un singleton. Gestisce tutte le reti asincrone. È usato dappertutto. Il mio obiettivo è eliminare il singleton e passare a DI, oltre a rendere la classe testabile. –