long t = System.currentTimeMillis();
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sp.edit();
editor.putLong("CurrentTime", t);
editor.apply();
File f = new File("/data/data/<mypackage>/shared_prefs/<mypackage>_preferences.xml");
boolean b = f.delete();
if (b == false)
Trace.i("Hello", "we did not delete it");
else
Trace.i("Hello", "we deleted it");
Trace.i("Hello","Reading" +Long.toString(sp.getLong("CurrentTime", 0)));
日志是:
I/Hello : We deleted it
I/Hello : Reading 1482471022197
所以预期的结果应该是读0 ,我在这里做错了什么?
答案 0 :(得分:0)
您删除了“文件未共享”偏好设置。要了解共享首选项的工作方式,请参阅此基本教程:https://www.tutorialspoint.com/android/android_shared_preferences.htm
答案 1 :(得分:0)
创建SharedPreferences
的实例时,会从文件中提取共享首选项。因此值被缓存在内存中。因此,如果删除该文件,则仍会缓存值。要删除SharedPreferences
文件,您需要重新创建SharedPreferences
答案 2 :(得分:0)
不要删除SharedPreferences文件。
而不是尝试下面的代码:
sp.edit().clear();
sp.edit().commit();