我在我的Eclipse中構建的Android的Gingerbread 2.3.3應用程序中有3個活動。SharedPreferences退出時未保存應用程序
1)MainActivity
---兩個選擇,去LoginActivity或直接去HomeScreenActivity
2)LoginActivity
---輸入登錄憑據(又名用戶名和密碼),驗證,然後在SharedPreferences存儲。成功驗證後,它轉到HomescreenActivity。下面是我對在LoginActivity的SharedPreferences部分:
public static final String PREFS_FILE = "MY_PREFS";
SharedPreferences prefs = getSharedPreferences(PREFS_FILE, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("USERNAME", getUsername());
editor.putString("PASSWORD", getPassword());
editor.commit();
3)HomescreenActivity
---一個基本的主屏幕,顯示誰是登錄,現在在一個TextView右上角。對於這個我的onResume()包含:
public static final String PREFS_FILE = "MY_PREFS";
SharedPreferences prefs = getSharedPreferences(PREFS_FILE, MODE_PRIVATE);
TextView name_text = (TextView) findViewById(R.id.name_text_vw);
name_text.setText(prefs.getString("USERNAME", "");
當我使用LoginActivity
和登錄,我看到正確的用戶名在該HomescreenActivity
TextView的。但是,當我退出應用程序並執行一些其他操作以使活動脫離堆棧時,我想回到應用程序,直接轉至我的HomescreenActivity
並查看我的用戶名已登錄。但是這並沒有發生。有誰知道爲什麼?即使離開應用程序,我仍然認爲SharedPreferences是存儲設置和數據的方式。也許我沒有使用正確的模式 - 又名MODE_WORLD_READABLE
或MODE_WORLD_WRITABLE
?
Checked logcat? –
yupped選中了Logcat,這是我知道我在我的應用程序內時的偏好設置是否正確存儲。當我的應用程序退出時,我失去了登錄信息。 – codedawg82