बस आज डैगर 2 का उपयोग करना शुरू कर दिया और मैं थोड़ा उलझन में हूं कि मुझे सबकुछ सेट करने की ज़रूरत है।एंड्रॉइड डैगर 2 पीओजेओ फील्ड इंजेक्ट नल
मैं एक पीओजेओ इंजेक्ट करने की कोशिश कर रहा हूं, लेकिन यह हमेशा शून्य है। सबसे पहले, कुछ कोड:
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();
}
मैं समय की एक अच्छा सौदा खर्च किया है ट्यूटोरियल के बहुत सारे के माध्यम से देख, अतः प्रश्न, और उदाहरण, लेकिन मैं यह समझने में सक्षम नहीं हूं कि मैं क्या गलत कर रहा हूं।
मैं 99% निश्चित हूं कि मेरे पास कुछ सेटअप गलत है, लेकिन मैं यह समझने में सक्षम नहीं हूं।
ऐसा लगता है कि आपके पास थोड़ा उलझन है। आपका लक्ष्य क्या है? आप 'नेटवर्किंग प्रबंधक' का उपयोग करने की कोशिश कर रहे हैं? – Emmanuel
नेटवर्कमेनर वर्तमान में एक सिंगलटन है। यह सभी async नेटवर्किंग संभालती है। यह पूरी जगह पर प्रयोग किया जाता है। मेरा लक्ष्य सिंगलटन को खत्म करना और डीआई पर स्विच करना है, साथ ही क्लास टेस्टेबल बनाना है। –