Android 用sp儲存登入狀態以及退出登入
阿新 • • 發佈:2018-11-08
public class SharedPrefUtility { private static final String FILE_NAME = "share_date"; public static final String INDEX="index"; public static final String LOGIN_DATA="loginData"; public static final String IS_LOGIN="isLogin"; /** * save data into FILE_NAME ,this path is data/data/POCKET_NAME/shared_prefs* @param context * @param key * @param object */ public static void setParam(Context context , String key, Object object){ String type = object.getClass().getSimpleName(); SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit(); if("String".equals(type)){ editor.putString(key, (String)object); } else if("Integer".equals(type)){ editor.putInt(key, (Integer)object); } else if("Boolean".equals(type)){ editor.putBoolean(key,(Boolean)object); } else if("Float".equals(type)){ editor.putFloat(key, (Float)object); } else if("Long".equals(type)){ editor.putLong(key, (Long)object); } editor.apply(); } /** * get value via enter key * @param context * @param key * @param defaultObject * @return */ public static Object getParam(Context context , String key, Object defaultObject){ String type = defaultObject.getClass().getSimpleName(); SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); if("String".equals(type)){ return sp.getString(key, (String)defaultObject); } else if("Integer".equals(type)){ return sp.getInt(key, (Integer)defaultObject); } else if("Boolean".equals(type)){ return sp.getBoolean(key, (Boolean)defaultObject); } else if("Float".equals(type)){ return sp.getFloat(key, (Float)defaultObject); } else if("Long".equals(type)){ return sp.getLong(key, (Long)defaultObject); } return null; } /** * delete key * @param context * @param key */ public static void removeParam(Context context,String key){ SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.remove(key); editor.apply(); }
}
建立一個Utils
然後 呼叫判斷是否登入
isLogin=(Boolean) SharedPrefUtility.getParam(getActivity(), SharedPrefUtility.IS_LOGIN, false);
儲存登入狀態:
//儲存登入狀態 SharedPrefUtility.setParam(LoginActivity.this, SharedPrefUtility.IS_LOGIN, true); //儲存登入個人資訊 SharedPrefUtility.setParam(LoginActivity .this, SharedPrefUtility.LOGIN_DATA, result);
退出登入:
SharedPrefUtility.setParam(MySettingsActivity.this, SharedPrefUtility.IS_LOGIN, false);
SharedPrefUtility.removeParam(MySettingsActivity.this, SharedPrefUtility.LOGIN_DATA);
這就是簡單的sp儲存登入狀態以及退出登入