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

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


当前回答

你可以使用preferences.edit().remove("key").commit()从共享首选项中删除保存的值。

其他回答

如果不需要每次都删除它,您可以手动从:

>应用程序->管理应用程序->(选择您的应用程序) ->清除数据或卸载

更新版本的Android:

设置—>应用程序—>(选择应用程序)—>存储—>清理数据 和清空缓存

即使没有根电话,也可以使用adb shell来完成此任务。唯一的问题是应用程序必须是可调试的。

run-as <your package name> <command>

例如:

run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db

或者,你可以只做上面的操作,但不使用命令,该命令将引导你到应用程序包的根目录,并允许你在应用程序的上下文中执行更多命令。

我的回答:

在Java中:

SharedPreferences myPrefs = context.getSharedPreferences("My_Pref", Context.MODE_PRIVATE);
myPrefs.edit().remove("my_key").apply();

在芬兰湾的科特林:

val myPrefs = context.getSharedPreferences("My_Pref", Context.MODE_PRIVATE)
myPrefs.edit().remove("my_key").apply()

在类定义中:

private static final String PREFERENCES = "shared_prefs";

private static final SharedPreferences sharedPreferences  = getApplicationContext().getSharedPreferences(PREFERENCES, MODE_PRIVATE);

类内部:

public static void deleteAllSharedPrefs(){
    sharedPreferences.edit().clear().commit();
}

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

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

或申请非阻塞异步操作:

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