如何删除应用程序的SharedPreferences数据?
我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。
如何删除应用程序的SharedPreferences数据?
我正在创建一个使用大量web服务来同步数据的应用程序。出于测试目的,我需要在重新启动应用程序时删除一些SharedPreferences值。
当前回答
这是我的Kotlin方法:
public fun clearAllSharedPrefs() {
val sharedPreferences: SharedPreferences = MainApplication.applicationContext()
.getSharedPreferences("MY_CUSTOME_KEY", Context.MODE_PRIVATE)
sharedPreferences.edit().clear()
sharedPreferences.edit().apply()
}
其他回答
试试下面的代码:
SharedPreferences sharedPreferences = getSharedPreferences("fake", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.clear().commit();
没有一个答案适合我,因为我有很多共享的首选项键。
假设你正在运行一个Android测试,而不是一个单元测试。
它为我工作循环和删除通过所有shared_prefs文件。
@BeforeClass将在所有测试和ActivityTestRule之前运行
@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();
}
}
芬兰湾的科特林:
var prefs2: SharedPreferences? = context!!.getSharedPreferences("loginFB", 0)
prefs2!!.edit().remove("email").commit()
即使没有根电话,也可以使用adb shell来完成此任务。唯一的问题是应用程序必须是可调试的。
run-as <your package name> <command>
例如:
run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db
或者,你可以只做上面的操作,但不使用命令,该命令将引导你到应用程序包的根目录,并允许你在应用程序的上下文中执行更多命令。
如果不需要每次都删除它,您可以手动从:
>应用程序->管理应用程序->(选择您的应用程序) ->清除数据或卸载
更新版本的Android:
设置—>应用程序—>(选择应用程序)—>存储—>清理数据 和清空缓存