我试图找出如何安全断言偏好不会存储在任何地方。似乎还没有理解缓存机制,文档也没有澄清它。这就是我所做的:
File prefsFile = new File("/data/data/"+context.getPackageName() + "/shared_prefs/"
+ context.getPackageName() + "_preferences.xml");
prefsFile.delete();
assertFalse(prefsFile.exists()); // success
// This assertion could fail - why?
assertEquals(0, context.getSharedPreferences(context.getPackageName()+"_preferences",
MODE_PRIVATE).getAll().size());
虽然我删除了prefs文件,但getAll().size()
仍然可能返回非零值。
有人可以解释原因吗?
答案 0 :(得分:2)
我试图找出如何安全地断言偏好不会存储在任何地方。
为什么?
有人可以解释原因吗?
脱离我的头顶:
SharedPreferences
HashMap
返回的getAll()
,看看您的数据是否存在,或者是否是某些系统提供的初始值如果要清除SharedPreferences
,请不要尝试删除该文件。在edit().clear().commit()
对象上拨打edit().clear().apply()
或SharedPreferences
。