我使用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);
知道如何实现这个目标吗?
答案 0 :(得分:2)
是的,您可以将List
发送给其他活动,但首先您需要将其转换为ArrayList
或String[]
数组的实例。
看看这个主题:
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级开始):