保存实例的活动状态以维护用户登录?

时间:2014-08-14 14:48:24

标签: java android session

我正在开发一个具有登录形式的Android应用程序,并且应该维护用户登录。基本上我要做的是向API发出请求并发送用户电子邮件和密码,该请求返回一个JSONObject,我管理得很好。

我有一个 cookieStore 实例,并通过 SharedPreferences 的实例将它们保存到用户首选项中,因此每次我需要当前用户凭据时,我只是从喜好。

事情是,如果我在手机上关闭应用程序(我认为这意味着“暂停”它,对吧?)我丢失了所有真正有意义的数据,因为我永远不会保存实例状态我的活动。

我的问题是:

为了维护用户登录,我需要保存到活动的实例状态?我可以保存偏好吗?我该怎么做?还有,假设要在每个活动的onResume()方法上完成吗?

希望有人可以帮助我,我刚刚开始在Android中开发。 :)

提前致谢。

2 个答案:

答案 0 :(得分:1)

保存在SharedPreferences中的数据在您关闭/销毁应用时不会丢失。只需检查SharedPreferences中的登录详细信息OnResume。当用户注销时,不要忘记从SharedPreferences中删除它。

您还可以在SharedPreferences中保存登录的日期时间,并检查OnResume以查看用户是否超时。

答案 1 :(得分:0)

如果您使用的是 SharedPreferences ,并且您不希望/需要保存活动的当前状态,则只需从onResume()方法中获取SharedPreferences(如果有)的值。 / p>

如果您不想保留活动状态,则必须使用 onSaveInstanceState(Bundle outState) 方法将数据保存在Bundle和 onCreate(Bundle savedInstanceState)从Bundle获取数据并填充View。