Android 在安卓系统中,什么';通过多种活动维持一个会话的最佳实践是什么?

Android 在安卓系统中,什么';通过多种活动维持一个会话的最佳实践是什么?,android,session,cookies,android-activity,Android,Session,Cookies,Android Activity,我有一个应用程序,它有一个登录屏幕,然后转到其他屏幕(在其他活动中),并且需要在整个过程中保持一个会话 我环顾四周,找到了一些方法,但大多数方法都没有考虑多个活动 我发现有一个使用httpclient的,但它很旧,Android说在较新的设备上使用HttpURLConnection更好 所以我不知道该用哪一个,怎么用。由于所有其他活动都源于单个活动,因此我考虑将它们都作为登录页面的子活动,并通过MainActivity.session(或其他名称)引用会话 有什么建议吗?会话cookie通常由您

我有一个应用程序,它有一个登录屏幕,然后转到其他屏幕(在其他活动中),并且需要在整个过程中保持一个会话

我环顾四周,找到了一些方法,但大多数方法都没有考虑多个活动

我发现有一个使用httpclient的,但它很旧,Android说在较新的设备上使用HttpURLConnection更好

所以我不知道该用哪一个,怎么用。由于所有其他活动都源于单个活动,因此我考虑将它们都作为登录页面的子活动,并通过MainActivity.session(或其他名称)引用会话


有什么建议吗?

会话cookie通常由您使用的HTTP堆栈维护。活动不一定起作用

例如,如果您阅读,“使用Cookies的会话”部分将向您展示如何为您的应用程序建立cookie管理器:

CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);

然后,不管您的HTTP操作是在什么活动上进行的——自流程启动以来,来自其他操作的任何相关cookie都将包含在后续请求中。

会话cookie通常由您使用的HTTP堆栈维护。活动不一定起作用

例如,如果您阅读,“使用Cookies的会话”部分将向您展示如何为您的应用程序建立cookie管理器:

CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);

然后,不管您的HTTP操作是在什么活动上进行的——自您的流程启动以来,来自其他操作的任何相关cookie都将包含在后续请求中。

什么类型的“会话”?您是指Web服务器发送的某种会话cookie吗?是的,我需要维护服务器提供的cookie。什么类型的“会话”?您是指您的Web服务器发送的某种会话cookie吗?是的,我需要维护服务器提供的cookie。谢谢!现在我想知道httpclient是否也有类似的功能。@user2312638:为此,您需要一个所选的
httpclient
实现的单例实例(例如,
AndroidHttpClient
)。默认情况下,由相同的
HttpClient
实例发出的所有请求共享cookie。这会变得复杂,因为HttpClient在默认情况下不是线程安全的,所以您必须连接一个
ThreadSafeClientConnectionManger
。您在哪里设置这两行?在连接后的一开始?我如何找到源服务器?@user2312638:“您在哪里设置这两行?”——在某个地方为您的流程设置一次。您可以将它们放入
静态{}
初始值设定项块AFAIK中。“我如何找到源服务器?”--欢迎您查看JavaDocs中的
CookieManager
CookieMhandler
以了解您可以获得哪些信息。谢谢!现在我想知道httpclient是否也有类似的功能。@user2312638:为此,您需要一个所选的
httpclient
实现的单例实例(例如,
AndroidHttpClient
)。默认情况下,由相同的
HttpClient
实例发出的所有请求共享cookie。这会变得复杂,因为HttpClient在默认情况下不是线程安全的,所以您必须连接一个
ThreadSafeClientConnectionManger
。您在哪里设置这两行?在连接后的一开始?我如何找到源服务器?@user2312638:“您在哪里设置这两行?”——在某个地方为您的流程设置一次。您可以将它们放入
静态{}
初始值设定项块AFAIK中。“我如何找到源服务器?”--欢迎您查看JavaDocs中的
CookieManager
CookieMhandler
以了解您可以获得哪些信息。