2012-04-18 92 views
21

我在我的應用程序中創建登錄。用戶輸入他的信息我發送到Web服務檢查並獲得他的ID。現在我需要將它保存在我的應用程序的某個地方,以便檢查他是否已登錄。在應用程序設置中保存用戶信息

那麼這個信息應該保存在哪裏?我知道每個應用程序都有它的設置,所以應該有這個信息?也許有人可以給我更多的信息,這是怎麼做的。

謝謝。

我發現這個職位: What is the most appropriate way to store user settings in Android application

我相信我的問題是重複的。但如果你有更多的分享內容,那將會很好。

回答

54

第一。

SharedPreferences settings = getSharedPreferences("UserInfo", 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putString("Username",txtUname.getText().toString()); 
editor.putString("Password",txtPWD.getText().toString()); 
editor.commit(); 

,然後從下面的代碼獲得SharedPreferences

SharedPreferences settings = getSharedPreferences("UserInfo", 0); 
txtUname.setText(settings.getString("Username", "").toString()); 
txtPWD.setText(settings.getString("Password", "").toString()); 
+1

對於任何想了解compatiility,這是受支持在所有當前API版本中(在API V1中添加)。 SharedPreferences文檔可以在這裏找到:http://developer.android。com/reference/android/content/SharedPreferences.html – JakeJ 2014-01-23 15:45:35

+10

對於任何想知道安全性的人,請勿將您的用戶密碼存儲在SharedPreferences中。 – 2014-08-01 12:23:09

+5

你永遠不應該在應用程序或數據庫中保存普通密碼。不用保存純文本,您可以對其進行哈希處理。當你需要驗證給定的用戶密碼時,你可以用同樣的方法對它進行哈希處理,並比較哈希值。這種方式比純文本好得多。 – RoDo 2016-01-19 08:37:14

7

您可以使用SharedPreferences

從引用(taken from documentation)有些代碼:

像在使用此代碼SharedPreferences UNAME &密碼都保存用戶信息的
public class Calc extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 

    @Override 
    protected void onCreate(Bundle state){ 
     super.onCreate(state); 
     . . . 

     // Restore preferences 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     boolean silent = settings.getBoolean("silentMode", false); 
     setSilent(silent); 
    } 

    @Override 
    protected void onStop(){ 
     super.onStop(); 

     // We need an Editor object to make preference changes. 
     // All objects are from android.context.Context 
     SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
     SharedPreferences.Editor editor = settings.edit(); 
     editor.putBoolean("silentMode", mSilentMode); 

     // Commit the edits! 
     editor.commit(); 
    } 
} 
22

答案是使用應用程序級或共享偏好

我想你可以輕鬆地搜索的Application ClassSharedPreferencesSQLite Database爲例

所以我提到我在哪裏使用的選項

Application Class

當我什麼(VAR,陣列,列表,對象)爲Application..and的壽命(僅僅只存儲當它接近了針對Android強制關閉)我使用應用程序類。

SharedPreferences

我用這個當我喜歡的ID,令牌,用戶名,國旗一些短信息,我想保存,只要在Device..and應用其餘需要使用這些信息,每次我開始應用..

SQLite Database

當在記錄格式(行 - 列)一個批量數據我用它在數據庫中存儲,使其成爲易於保存,retrive和操縱。

0

如果用戶設定清除應用程序數據 - >應用程序管理器 - >應用程序 - >保存在共享偏好清晰的數據

那麼所有的數據均會移除

+1

真的嗎?哇謝謝指出。我不知道這是否也適用於SQLite數據庫 – MobileMon 2014-01-03 19:14:43

+2

是的,它的確認,數據庫也被抹去了。確認對話框告訴我所有「文件,設置,帳戶,數據庫等」將被永久刪除。每天學些新東西... – MobileMon 2014-01-03 19:23:26

相關問題