如何删除应用程序的SharedPreferences数据?
我正在创建一个使用许多网络服务同步数据的应用程序。出于测试目的,当我重新启动应用程序时,我需要清除一些SharedPreferences值。
如何删除应用程序的SharedPreferences数据?
我正在创建一个使用许多网络服务同步数据的应用程序。出于测试目的,当我重新启动应用程序时,我需要清除一些SharedPreferences值。
Kotlin中的一行代码:
getSharedPreferences("MY_PREFS_NAME", MODE_PRIVATE).edit().clear().apply()
Kotlin ktx清除所有首选项的方法:
val prefs: SharedPreferences = getSharedPreferences("prefsName", Context.MODE_PRIVATE)
prefs.edit(commit = true) {
clear()
}
点击这里查看带有示例的所有Shared preferences操作
由于我有许多共享首选项键,因此没有一个答案适用于我。
假设您正在运行Android测试而不是单元测试。
对我来说,循环并删除所有shared_prefs文件是有效的。
@BeforeClass将在所有测试和ActivityTestRule之前运行
“Original Answer”翻译成中文为“最初的回答”。
@BeforeClass
public static void setUp() {
Context context = InstrumentationRegistry.getTargetContext();
File root = context.getFilesDir().getParentFile();
String[] sharedPreferencesFileNames = new File(root, "shared_prefs").list();
for (String fileName : sharedPreferencesFileNames) {
context.getSharedPreferences(fileName.replace(".xml", ""), Context.MODE_PRIVATE).edit().clear().commit();
}
}
new File(context.getFilesDir(), fileName).delete();
我可以使用它来删除共享首选项中的文件
我的答案:
在Java中:
SharedPreferences myPrefs = context.getSharedPreferences("My_Pref", Context.MODE_PRIVATE);
myPrefs.edit().remove("my_key").apply();
使用Kotlin:
val myPrefs = context.getSharedPreferences("My_Pref", Context.MODE_PRIVATE)
myPrefs.edit().remove("my_key").apply()
Kotlin :
var prefs2: SharedPreferences? = context!!.getSharedPreferences("loginFB", 0)
prefs2!!.edit().remove("email").commit()
Kotlin
方法: public fun clearAllSharedPrefs() {
val sharedPreferences: SharedPreferences = MainApplication.applicationContext()
.getSharedPreferences("MY_CUSTOME_KEY", Context.MODE_PRIVATE)
sharedPreferences.edit().clear()
sharedPreferences.edit().apply()
}
您可以使用 preferences.edit().remove("key").commit()
从共享偏好中删除保存的值。
今天早上刚刚做了这个。 从命令提示符:
adb shell
cd /data/data/YOUR_PACKAGE_NAME/shared_prefs
rm * // to remove all shared preference files
rm YOUR_PREFS_NAME.xml // to remove a specific shared preference file
注意:这需要一个已root的设备,如原生Android虚拟设备、Genymotion设备或实际已root的手机/平板电脑等。
adb shell
后运行 su
命令来打开特权 shell。 - Anubian Noob