1. 程式人生 > >android記錄登入狀態

android記錄登入狀態

android 開發過程中,我們經常有需要記住登陸的狀態的情況。下面是我實現這一功能的一些思路
首先假設,咱們已經實現了登入。
要實現記住登入,我們當然需要將一些資料儲存到什麼地方。android為我們提供了以下幾種儲存資料的機制
1、SharedPreference 最簡單,也是我們要使用的
2、sqlite資料庫 可以實現,但是操作要麻煩一些
3、檔案儲存

//SharedPreferences 儲存資料的實現程式碼
SharedPreferences sharedPreferences =
context.getSharedPreferences(“user”, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
//如果不能找到Editor介面。嘗試使用 SharedPreferences.Editor
editor.putString(“user_id”, user_id);
//我將使用者資訊儲存到其中,你也可以儲存登入狀態
editor.commit()

登入狀態已經儲存,以下是取得該資訊的程式碼

//取sharedpreferences中資料的程式碼
String user_id=null;
SharedPreferences sharedPreferences =
context.getSharedPreferences("user", Context.MODE_PRIVATE);
user_id = sharedPreferences.getString("user_id", "null");

那麼怎麼才能記住登入呢?在登入activity的最前面新增判斷語句,

已經登入直接跳轉到程式主介面,否則留在登入介面

//檢測使用者是否已經登入,如果已經登入,直接跳轉到使用者主介面,否則什麼也不做
Boolean isLogged = MyTools.isLogged(LoginActivity.this); if(isLogged){ Intent intent = new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); finish();//關閉當前登入介面,否則在主介面按後退鍵還會回到登入介面 } //以下是正常的登入相關程式碼

補充說明
使用者正常登入的時候,登入操作大多是在另一個執行緒中。在這個執行緒中是不好finish UI執行緒中

的activty的。可以使用AsyncTask類,handler或者廣播接受者在主執行緒中finish() 登入介面