对不起,我以前从未使用过匕首/刀柄。无法理解如何在我的应用程序中注入依赖项。这是现在所拥有的:
@InstallIn(Application::class)
@Module
abstract class RepositoryModule {
@Binds
abstract fun bindProductRepository(productRepository: ProductRepository): IProductRepository
@Binds
abstract fun bindCategoryStorage(categoryStorage: CategoryStorageImpl) : CategoryStorage
companion object {
@Provides
@Singleton
fun createRoomDataBase(@ApplicationContext context: Context) : ProductRoomDatabase = ProductRoomDatabase.getDatabase(context)
@Provides
@Singleton
fun createProductDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.productDao()
@Provides
@Singleton
fun createCategoryDao(productRoomDatabase: ProductRoomDatabase) = productRoomDatabase.categoryDao()
}
}
答案 0 :(得分:0)
有很多关于这个主题的课程和教程,但大多数只是改写了原始文档。我强烈建议您从官方 Android 网站阅读此文档 https://developer.android.com/training/dependency-injection/hilt-android
答案 1 :(得分:0)
刀柄带有三个预制组件:
ApplicationComponent | SingletonComponent
- 包含应用程序级依赖项并一直持续到应用程序生命周期的组件。
ActivityComponent
- 包含 Activity
级依赖项的组件
FragmentComponent
- 包含 Fragment
级依赖项的组件
InstallIn
注释表明当前模块中的所有依赖项都将在注释的参数中可用。