将cookie发送到下一个活动android

时间:2012-10-07 16:24:07

标签: android cookies android-activity

我使用httpclient和cookiestore来保持我的会话,现在我想在下一个活动上使用相同的会话,我正在使用api 8所以我不能使用cookiemanager。可能吗?如果我能以某种方式发送cookie列表,例如:

Intent i = new Intent(this, Login.class);
i.putExtra("domain", domain);
//need to get the following list across
List<Cookie> cookies = cookieStore.getCookies();
//i.putMyDamnCookies("cookies",cookies);
startActivity(i);

知道如何实现这个目标吗?

3 个答案:

答案 0 :(得分:2)

是的,您可以将List发送给其他活动,但首先您需要将其转换为ArrayListString[]数组的实例。

看看这个主题:
Passing a List to another Activity in Android
How to put a List in intent

答案 1 :(得分:1)

将您的List存储为字符串数组,并将其传递给意图下一个活动,如下所示:

String[] cookieArray = new String[cookies.size()];
            //copy your List of Strings into the Array 
            int i=0;
            for(Cookie c : cookies ){
                cookieArray[i]=c.toString();
                i++;
             }
            //then pass it in your intent
            Intent intent = new Intent(this, Login.class);
            intent.putExtra("cookieArray", cookieArray);
            startActivity(i);  

然后在下一次重演中,从意图中检索cookie数组并将Cookie转换回来:

List<Cookie> cookies = new List<Cookies>();
for(int i=0;i<cookieArray.size;i++)
{
cookies.add(new HttpCookie(cookieArray[i]));
}

答案 2 :(得分:0)

当然 - 只需从HTTP标头中读取cookie,然后将其存储起来对您来说很方便。

我认为这可能有些过分,但这是一个使用Android 2.2附带的Apache HTTP Client的示例:

另见(从1级开始):