我正在開發一個android應用程序,其中第一個活動是Login。認證成功後,用戶可以看到有4個選項卡的活動。我的問題是,當用戶點擊主頁按鈕時,應用程序應該終止,並且當用戶再次啓動我的應用程序時,他應該能夠再次看到登錄屏幕,並且在成功登錄後,用戶應該能夠看到在其上他在應用程序終止之前工作(即,保存所有選項卡的狀態)。請幫我解決這個問題。提前致謝。在我的Android應用程序中保存狀態
回答
您可以在Android中以三種方式保存狀態。
- 首選項:用於存儲應用程序首選項。
- 文件系統:使用Android IO。
- 的Sql精簡版DB:數據保存到數據庫
你可以存儲在數據庫中的選項卡,選擇保存的狀態每當用戶回來您的應用程序的時間。
這個android dev網站有很多關於這些存儲方法的信息。 data storage
使用SharedPreferences
SharedPreferences實施例(從對Webworld):
/**
* get if this is the first run
*
* @return returns true, if this is the first run
*/
public boolean getFirstRun() {
return mPrefs.getBoolean("firstRun", true);
}
/**
* store the first run
*/
public void setRunned() {
SharedPreferences.Editor edit = mPrefs.edit();
edit.putBoolean("firstRun", false);
edit.commit();
}
SharedPreferences mPrefs;
/**
* setting up preferences storage
*/
public void firstRunPreferences() {
Context mContext = this.getApplicationContext();
mPrefs = mContext.getSharedPreferences("myAppPrefs", 0); //0 = mode private. only this app can read these preferences
}
許多應用可提供一種方式來捕獲特定的應用程序或活動的設置用戶偏好。爲了支持這一點,Android提供了一組簡單的API。
首選項通常是名稱值對。它們可以作爲「共享首選項」存儲在應用程序中的各種活動中(請注意,目前不能在各個進程間共享)。或者它可能是需要針對某個活動存儲的內容。
共享偏好:共享偏好可以由所有的組件(活動,服務等)關閉應用中。
活動處理的首選項:這些首選項只能在活動中使用,並且不能由應用程序的其他組件使用。
共享偏好:
共享偏好與Context
類的getSharedPreferences
方法的幫助下管理。首選項存儲在默認文件(1)中,或者您可以指定用於引用首選項的文件名(2)。
(1)這是在指定的文件名
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
是偏好操作模式如何獲得實例。這是默認模式,意味着創建的文件只能被調用應用程序訪問。其他支持的兩種模式是MODE_WORLD_READABLE
和MODE_WORLD_WRITEABLE
。在MODE_WORLD_READABLE
其他應用程序可以讀取創建的文件,但不能修改它。在MODE_WORLD_WRITEABLE
的情況下,其他應用程序也對創建的文件具有寫入權限。
(2)推薦的方法是使用默認模式上PreferenceManager,不指定文件名
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
最後,一旦你的喜好來說,這裏是你如何能檢索從首選項存儲的值:
int storedPreference = preferences.getInt("storedInt", 0);
要店在首選項文件值必須使用對象。 Editor
是SharedPreference
類的嵌套接口。
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
像remove()
和clear()
編輯器還支持方法來刪除該文件的優先級。
活動設定:
共享偏好可以由其他應用程序組件中使用。但是,如果您不需要與其他組件共享偏好並希望擁有活動的私人偏好。你可以在getPreferences()
活動的幫助下做到這一點。 getPreference
方法使用getSharedPreferences()
方法以及首選項文件名稱的活動類名稱。
以下是代碼即可獲得優惠
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
存儲值的代碼也一樣共享偏好的情況下。
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
您還可以使用其他方法,如將活動狀態存儲在數據庫中。注意Android還包含一個名爲android.preference
的包。該包定義了實現應用程序首選項UI的類。
要查看更多示例,請在開發人員網站上查看Android的Data Storage帖子。
- 1. 保存Android應用程序狀態
- 2. android應用程序保存狀態
- 3. Android應用程序 - 保存狀態
- 4. 如何保存我的android應用程序的狀態?
- 5. 如何在android中保存應用程序的狀態?
- 6. 如何在Windows Store應用程序中保存我的狀態?
- 7. 在Android中保存應用程序狀態
- 8. 保存AngularJS應用程序的狀態
- 9. 保存應用程序的狀態
- 10. 應用主題後Android保存應用程序狀態
- 11. 應用程序狀態保存/恢復
- 12. 保存應用程序狀態
- 13. Android在應用程序狀態下將ImageView保存爲
- 14. Android:在進入「背景」時保存應用程序狀態
- 15. 應用程序狀態,數據在內存中保存多久?
- 16. 如何保存應用程序狀態的Android
- 17. 我可以在iPhone OS中保存我的應用程序的狀態嗎?
- 18. 在WP7的3頁應用程序中保存頁面狀態
- 19. 在數據庫中保存應用程序的狀態
- 20. 在模擬器中測試應用程序狀態的保存
- 21. 如何在應用程序中保存開關的狀態
- 22. 在AJAX應用程序中保持Web應用程序狀態
- 23. 如何在android應用程序中保存變量的狀態並使用它
- 24. Android應用程序狀態
- 25. 在MVVM應用程序中保存用戶狀態
- 26. 如何在iPhone中使用NSUserDefaults保存應用程序狀態?
- 27. Android Win Death - 應用程序死亡,沒有保存狀態
- 28. Jython保存程序狀態
- 29. 如何在android中保存整個應用程序的redibutton狀態?
- 30. 如何在Titanium開發的Android應用程序中保存實例狀態?