Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否保存活动的实例状态以维护用户登录?_Java_Android_Session - Fatal编程技术网

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

Java 是否保存活动的实例状态以维护用户登录?,java,android,session,Java,Android,Session,我正在开发一个Android应用程序,它有一个登录表单,应该维护用户的登录。基本上,我要做的是向API发出请求并发送用户电子邮件和密码,该请求返回一个JSONObject,我可以很好地管理它 我有一个cookieStore实例,并通过SharedReferences实例将它们保存到用户首选项中,因此每次需要当前用户凭据时,我都从首选项中获取它们 问题是,如果我关闭手机上的应用程序(我想这意味着“暂停”它,对吗?),我会丢失所有数据,这实际上是有意义的,因为我从未保存我活动的实例状态。 我的问题是

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

我有一个cookieStore实例,并通过SharedReferences实例将它们保存到用户首选项中,因此每次需要当前用户凭据时,我都从首选项中获取它们

问题是,如果我关闭手机上的应用程序(我想这意味着“暂停”它,对吗?),我会丢失所有数据,这实际上是有意义的,因为我从未保存我活动的实例状态。

我的问题是:

我需要在活动的实例状态中保存什么才能维护登录的用户?我可以保存首选项吗?我该怎么做?另外,这是否应该在每个活动的onResume()方法上完成?

希望有人能在这方面帮助我,我才刚刚开始在Android上开发。:)


提前谢谢

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


您还可以在SharedReferences中保存登录的datetime,并在Resume上检查它,以查看用户是否超时。

如果您使用的是SharedReferences,并且您不想/不需要保存活动的当前状态,则只需在OnResume()方法中从SharedReferences(如果有)获取值即可


如果不想保留活动的状态,则必须使用
onSaveInstanceState(Bundle outState)
方法将数据保存在捆绑包中,并使用
onCreate(Bundle savedInstanceState)
从捆绑包中获取数据并填充视图。谢谢回答。

。我刚刚意识到我的问题是每次关闭应用程序时我的cookie都会丢失,所以当我向API发出新请求时,就像我从未登录一样。我想我可以将cookieStore实例保存在onPause()中,然后在onResume()中还原,对吗?onPause()不允许您访问捆绑包。您应该使用onSaveInstanceState(Bundle outState)保存数据。