【发布时间】:2016-04-14 04:38:03
【问题描述】:
所以我只是想保存一个字符串。但每次我重新运行应用程序时,我都会为保存的字符串得到 null :/ 我 100% 确定我正在调用 save 方法,并且字符串它保存时不为空。
public class CFUser {
private final static String ID_KEY="myUserID";
private static String userID;
public static String getUserID(Context context) {
if(userID==null) {
SharedPreferences prefs= context.getApplicationContext().getSharedPreferences(ID_KEY, 0);
userID=prefs.getString(ID_KEY, null);
}
return userID;
}
public static void setUserID(String id, Context context) {
userID=id;
Log.d("saving", id);
SharedPreferences prefs=context.getApplicationContext().getSharedPreferences(ID_KEY, 0);
prefs.edit().putString(ID_KEY, userID);
prefs.edit().apply();
}
public static boolean isLoggedIn(Context context) {
return getUserID(context)!=null;
}
}
非常感谢!
【问题讨论】:
-
做
editor.commit(); -
@MD:
commit()与apply()的工作方式相同,不同之处在于apply()是异步的(因此在这种情况下建议使用)。 -
@TobiasBaumeister 完全同意!!!
标签: android