小编Ann*_*ngh的帖子

将 sharedPreferences 和 sharedPrefencesEditor 添加到 Koin 模块时遇到的问题

我最近了解了 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()
Run Code Online (Sandbox Code Playgroud)

我试图像这样将上述代码转换为Koin ->

val appModule = module {

    val ctx by lazy{ androidApplication() }

    single {
        ctx.getSharedPreferences("default", Context.MODE_PRIVATE)
    }

    single {
        getSharedPreferences(ctx).edit()
    }
}
Run Code Online (Sandbox Code Playgroud)

我也尝试以这种方式实现它->

val appModule = module {

        single {
            androidApplication().getSharedPreferences("default", Context.MODE_PRIVATE)
        }

        single {
            getSharedPreferences(androidApplication()).edit()
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我像这样在我的活动中注入依赖项 - > …

dependency-injection koin

4
推荐指数
1
解决办法
2323
查看次数

标签 统计

dependency-injection ×1

koin ×1