误报 "SharedPreferences.edit() without a corresponding commit() or apply() call" lint 警告
False positive "SharedPreferences.edit() without a corresponding commit() or apply() call" lint warning
在将 Android Studio 更新为 Bumblebee 2021.1.1 补丁 2 后,我在每个(已经存在的)sharedPreferences.edit() 调用上收到了 lint 警告4.2.1
有趣的是,当我这样使用它时,我收到警告:
sharedPreferences.edit()
.putBoolean("example", true)
.apply()
但是当我将它保存在这样的变量中时,我没有收到任何警告:
val sharedPrefEdit = sharedPreferences.edit()
.putBoolean("example", true)
.apply()
知道为什么会这样吗?
任何想法如何 resolve/prevent 警告而不将此操作不必要地保存在变量中?
在我看来像是一个 lint 错误。
有一个方便的 edit
extension function 可让您在 lambda 中进行更新并自动应用更改。更简洁,它会避免这个 lint 警告:
sharedPreferences.edit {
putBoolean("example", true)
}
如果您的依赖项中没有 androidx.core:core-ktx
库,则需要它。
在将 Android Studio 更新为 Bumblebee 2021.1.1 补丁 2 后,我在每个(已经存在的)sharedPreferences.edit() 调用上收到了 lint 警告4.2.1
有趣的是,当我这样使用它时,我收到警告:
sharedPreferences.edit()
.putBoolean("example", true)
.apply()
但是当我将它保存在这样的变量中时,我没有收到任何警告:
val sharedPrefEdit = sharedPreferences.edit()
.putBoolean("example", true)
.apply()
知道为什么会这样吗?
任何想法如何 resolve/prevent 警告而不将此操作不必要地保存在变量中?
在我看来像是一个 lint 错误。
有一个方便的 edit
extension function 可让您在 lambda 中进行更新并自动应用更改。更简洁,它会避免这个 lint 警告:
sharedPreferences.edit {
putBoolean("example", true)
}
如果您的依赖项中没有 androidx.core:core-ktx
库,则需要它。