在Android导航高级示例中,使用Hilt进行依赖注入时,遇到配置更改(例如屏幕旋转)时可能会出现问题。为了解决这个问题,可以按照以下步骤进行操作:
build.gradle文件中引入Hilt插件依赖:classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha'
build.gradle文件中应用Hilt插件:apply plugin: 'dagger.hilt.android.plugin'
build.gradle文件中添加Hilt的依赖:implementation 'com.google.dagger:hilt-android:2.28-alpha'
kapt 'com.google.dagger:hilt-android-compiler:2.28-alpha'
@HiltAndroidApp注解,以告诉Hilt这是一个使用Hilt进行依赖注入的应用:@HiltAndroidApp
class MyApp : Application() {
// ...
}
@AndroidEntryPoint注解,以告诉Hilt这是一个需要进行依赖注入的类:@AndroidEntryPoint
class MyActivity : AppCompatActivity() {
// ...
}
@Inject注解将依赖注入到相应的字段上:@AndroidEntryPoint
class MyFragment : Fragment() {
@Inject
lateinit var myDependency: MyDependency
// ...
}
by viewModels()创建ViewModel时,需要将其替换为by viewModels() ,以便Hilt能够正确管理ViewModel的依赖注入:@AndroidEntryPoint
class MyFragment : Fragment() {
private val viewModel: MyViewModel by viewModels()
// ...
}
通过以上步骤,可以在Android导航高级示例中使用Hilt进行依赖注入,并解决配置更改问题。