我最近了解了 Koin。我试图将我当前的项目从 Dagger 迁移到 Koin。这样做时,我遇到了在活动中注入sharedPreferences 和 sharedPreferences 编辑器的问题。
以下是我在Dagger中用于注入 sharedPreferences 和 sharedPreferences 编辑器的代码 ->
@Provides
@AppScope
fun getSharedPreferences(context: Context): SharedPreferences =
context.getSharedPreferences("default", Context.MODE_PRIVATE)
@SuppressLint("CommitPrefEdits")
@Provides
@AppScope
fun getSharedPrefrencesEditor(context: Context): SharedPreferences.Editor =
getSharedPreferences(context).edit()
我试图像这样将上述代码转换为Koin ->
val appModule = module {
val ctx by lazy{ androidApplication() }
single {
ctx.getSharedPreferences("default", Context.MODE_PRIVATE)
}
single {
getSharedPreferences(ctx).edit()
}
}
我也尝试以这种方式实现它->
val appModule = module {
single {
androidApplication().getSharedPreferences("default", Context.MODE_PRIVATE)
}
single {
getSharedPreferences(androidApplication()).edit()
}
}
现在我像这样在我的活动中注入依赖项->
val sharedPreferences: SharedPreferences by inject()
val sharedPreferencesEditor: SharedPreferences.Editor by inject()
但是一旦我启动我的应用程序并尝试使用它们,我就无法读取或写入任何偏好设置。
我对代码有什么问题感到有些困惑。请帮我解决这个问题。