![](/img/trans.png)
[英]How to maintain user data state when user is not logged in and the client machine crashes?
[英]Save instance state of activity to maintain user logged in?
我正在開發一個具有登錄表單並應保持用戶登錄狀態的Android應用程序。基本上,我要做的就是向API發出請求並發送用戶電子郵件和密碼,該請求返回一個JSONObject,我只管理精細。
我有一個cookieStore實例,並通過一個SharedPreferences實例將它們保存到用戶首選項中,因此,每當我需要當前用戶憑據時,我都會從這些首選項中獲取它們。
問題是,如果我關閉手機上的應用程序(我認為這意味着“暫停”它,對吧?)我丟失了所有實際上有意義的數據,因為我從未保存活動的實例狀態。
我的問題是:
為了保持用戶登錄狀態,我需要保存到活動的實例狀態中的什么內容? 我可以保存首選項嗎? 我該怎么做? 而且,是否假設要在每個活動的onResume()方法上完成?
希望有人可以幫助我,我才剛剛開始使用Android開發。 :)
提前致謝。
關閉/銷毀應用程序時,保存在SharedPreferences中的數據不會丟失。 只需在SharedPreferences中檢查登錄詳細信息OnResume。 用戶注銷時,請不要忘記從SharedPreferences中將其刪除。
您還可以將登錄的日期時間保存在SharedPreferences中,並在OnResume中對其進行檢查,以查看用戶是否超時。
如果您使用的是SharedPreferences,並且不想/不需要保存活動的當前狀態,則只需在onResume()方法中從SharedPreferences(如果有)中獲取值即可。
如果您不想保留活動狀態,則必須使用onSaveInstanceState(Bundle outState)
方法將數據保存在Bundle中,並使用onCreate(Bundle savedInstanceState)
方法從Bundle中獲取數據並填充視圖的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.