मैं डैगर के लिए नया हूं और मेरा कन्स्ट्रक्टर/विधि इंजेक्शन काम नहीं कर रहा है। काम नहीं करता है कि इंजेक्शन वाले फ़ील्ड अभी भी अनुरोध किए गए हैं।एंड्रॉइड: डैगर 2 और कन्स्ट्रक्टर इंजेक्शन
@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" अभी भी "प्रसंग" की आवश्यकता है, हालांकि मैं निर्माता के ऊपर "@Inject" एनोटेशन प्रयोग किया है:
यह मेरा कोड है। मुझे क्या याद आ रही है?
क्या मुझे अपने संदर्भ का खुलासा करने की भी आवश्यकता है?
धन्यवाद।
यदि आप उदाहरण 'MyClass my = new MyClass(); उदाहरण बनाना चाहते हैं तो @inject का क्या मतलब है? –