1. 程式人生 > >Android SharedPreferences儲存登入狀態

Android SharedPreferences儲存登入狀態

SharedPreferences是Android中一種資料持久化方法,採用鍵值對的方式儲存資料,這裡我以儲存登入狀態為例,簡述SharedPreferences的使用。

首先,我們在使用者登入時,儲存SharedPreferences,向SharedPreferences.edit()中新增資料,SharedPreferences支援的資料型別如下:


其中要注意,不要每次新建不同Editor插入資料,否則會造成取不出資料。

這裡Android建議使用apply()來代替commit(),因為commit()是立即儲存資料,而apply()是在後臺處理。

SharedPreferences sp = getSharedPreferences("login", Context.MODE_PRIVATE);
sp.edit()
    .putString("username", usernameView.getText().toString())
    .putString("password", passwordView.getText().toString())
    .apply();

當用戶再次開啟應用時,我們首先看SharedPreferences中是否有儲存的資料,如果有我們就取出來設定到EditText中,實現記住密碼功能,或是直接向伺服器傳送請求,從而實現自動登入。

SharedPreferences sp = getSharedPreferences("login", Context.MODE_PRIVATE);
usernameView.setText(sp.getString("username", null));
passwordView.setText(sp.getString("password", null));