如何删除应用程序的SharedPreferences数据?

我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。


当前回答

似乎所有的解决方案都不是完全有效或死亡

清除活动中的所有SharedPreferences

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().clear().apply();

从onCreate之后的Main Activity调用这个

注:我使用了.apply()而不是.commit(),你可以自由选择commit();

其他回答

要删除特定的值:SharedPreferences.Editor.remove()后面跟着一个commit()

SharedPreferences.Editor.clear()后面跟着一个commit()

如果您不关心返回值,并且从应用程序的主线程中使用它,请考虑使用apply()。

Kotlin ktx清除所有首选项的方法:

val prefs: SharedPreferences = getSharedPreferences("prefsName", Context.MODE_PRIVATE)
prefs.edit(commit = true) {
    clear()
}

点击这里查看所有共享首选项操作示例

从任意类中集中清除所有SharedPreferences:

public static SharedPreferences.Editor getEditor(Context context) {
    return getPreferences(context).edit();
}

然后从任何类:(commit返回一个布尔值,你可以检查你的Preferences是否被清除)

Navigation.getEditor(this).clear().commit();

或者你可以用apply;返回为空

Navigation.getEditor(this).clear().apply();

如果是为了你的测试。可以使用adb命令。

adb shell pm clear <package name>

一行删除Android共享首选项:-)

context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit();

或申请非阻塞异步操作:

this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply();