2014-04-15 74 views
0

我使用下面的代码:SharedPreferences删除没有明显的原因?

SharedPreferences sharedPref = getSharedPreferences(GlobalDefines.SHARED_PREFERENCES, Context.MODE_PRIVATE); 
String test = sharedPref.getString(GlobalDefines.GCM_KEY, "");   
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.clear(); 
editor.putBoolean(GlobalDefines.USER_IS_LOGGED_IN, false); 
editor.remove(GlobalDefines.USER_NAME); 
editor.remove(GlobalDefines.USER_PASSWORD); 
editor.commit(); 
test = sharedPref.getString(GlobalDefines.GCM_KEY, ""); 

字符串“Test”有一个值时,我得到了第一次共享偏好的价值;当我从首选项中移除另一个值并且想要再次获得相同的值(GCM_KEY)时,它将返回为空。

这是为什么?

+0

你究竟把你的共享首选项'GCM_KEY'值放在哪里? – donfuxx

+1

您正在调用'editor.clear()' - 它将删除'SharedPreferences'文件中的所有值。 – Squonk

回答

1

editor.clear()告诉编辑您想要从您的SharedPreferences中删除ALL值。删除这一行,你会看到预期的行为。

+0

谢谢,这是问题! – deimos1988

相关问题