在集成 Dagger 2 以在运行应用程序时实现 ImageDownloader 库的依赖注入后,我遇到了这个问题。
\n\n这就是我所做的:
\n\n在 build.gradle 中。我添加了这些行:
\n\nimplementation "com.google.dagger:dagger:2.16"\nimplementation "com.google.dagger:dagger-android-support:2.16"\nannotationProcessor "com.google.dagger:dagger-compiler:2.16"\nannotationProcessor "com.google.dagger:dagger-android-processor:2.16"\n
Run Code Online (Sandbox Code Playgroud)\n\n这是我的类 API,我想在其中将依赖项与活动类分开:
\n\npublic class ImageDownloaderApi {\n\n @Inject\n public ImageDownloaderApi(){\n }\n\n //some other methods here\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n在我的中MainActivity
我添加了这些行:
public class MainActivity extends Activity {\n\n @Inject\n ImageDownloaderApi imageDownloaderApi;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n AndroidInjection.inject(this);\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n然后创建了一个Application
对象:
public class MyApplication extends Application {\n\n @Override\n public void onCreate() {\n super.onCreate();\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\nApplication
然后通过清单注册该类,如下所示:
I am using dagger 2. And injecting my dependency in activities and fragments which is working fine.
AndroidInjection.inject(this)
for activities inside onCreate
.
// for the activity
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
}
Run Code Online (Sandbox Code Playgroud)
AndroidSupportInjection.inject(this)
for fragments inside onAttach
.
// for fragments
override fun onAttach(context: Context?) {
AndroidSupportInjection.inject(this)
super.onAttach(context)
}
Run Code Online (Sandbox Code Playgroud)
Now i want to inject my same dependency in a custom or util class named AsyncTaskHandler
. I am not able to access that dependency.
I suppose i …