Sono nuovo al pugnale e il mio costruttore/metodo di iniezione non sembra funzionare. Non funziona, significa che i campi iniettati sono ancora richiesti.Android: Dagger 2 e iniezione del costruttore
Questo è il mio codice:
@Module
public class AppContextModule {
private final Context appContext;
public AppContextModule(Context appContext) {
this.appContext = appContext;
}
@Singleton
@Provides
public Context getAppContext() {
return appContext;
}
}
@Singleton
@Component(modules = {AppContextModule.class})
public interface MyComponent {
void inject(ActivitiesLifeCycleListener obj);
void inject(WebViewManager obj);
Context context();
}
public final class MyClass {
private final WeakReference<Context> mAppContext;
@Inject
public MyClass(Context context) {
this.mAppContext = context
}
}
public class MyActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyClass my = new MyClass(); // The IDE requests context!
}
}
"MyClass" richiede ancora "Contesto" anche se ho usato l'annotazione "@Inject" sopra il costruttore. Cosa mi manca?
Ho anche bisogno di esporre il mio contesto?
Grazie.
Qual è il punto di @inject se si intende creare istanza 'MyClass my = new MyClass();' come questo? –