我正在尝试使用SharedPreferences
作为我<&strong>最喜欢的商品ID &#39;的存储空间。我在我的Kotlin Android应用程序中使用它。
当我调用将值存储到SharedPreferences
的方法时,我想保存Set
Strings
。每当我在我的应用程序中检查它们时,值都会出现在SharedPreferences
对象中。但是,当我关闭应用程序(在应用程序中关闭应用程序或应用程序崩溃时),然后再次打开应用程序时SharedPreferences
的内容为[]
,如果我没有在{{{{}}中保存任何内容1}}在应用程序运行期间。如果我将某些内容保存到SharedPreferences
关闭应用并再次打开,则只会加载SharedPreferences
一个元素Set
。
似乎我在[1]
使用SharedPreferences
putStringSet()
存储了一些内容只有一个元素Set
的{{1}}在应用程序崩溃后写入[1]
或者被关闭。
我已多次调试应用程序,将调试日志放在各处,但无法找到原因。
有人可以帮忙吗?
我不确定我是否需要SharedPreferences
或其他地方的某些权限?
为了更好地了解该应用:
我使用的是Android Emulator(也许它需要一些特殊的设置?)
更多活动正在访问相同的AndroidManifest
,基本上是我写入的一个活动,另一个是我从中读取的活动。
我用于将值存储到SharedPreferences中的方法:
SharedPreferences
我用这个方法从SharedPreferences获取值:
fun saveFavorite(id: Long){
val favorites = sharedPreferences.getStringSet(preferencesKey, setOf<String>())
favorites.add(id.toString())
with (sharedPreferences.edit()) {
putStringSet(preferencesKey, favorites)
commit()
}
}