簡體   English   中英

保存實例活動狀態以維持用戶登錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM