1

httpclientとcookiestoreを使用してセッションを維持していますが、次のアクティビティで同じセッションを使用したいので、api 8を使用しているため、cookiemanagerを使用できません。出来ますか?どういうわけか私がクッキーリストを送ることができれば、例えば:

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);

どうすればこれを達成できるでしょうか?

4

3 に答える 3

2

はい、 を別のアクティビティに送信できますが、最初に、または配列 Listのインスタンスに変換する必要があります。ArrayListString[]

このスレッドを見てください:
Passing a List to another Activity in Android
How to put a List in intent

于 2012-10-07T16:29:22.790 に答える
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]));
}
于 2012-10-07T16:38:31.980 に答える
0

もちろん、HTTPヘッダーからCookieを読み取って保存するだけで、便利です。

これはおそらくやり過ぎだと思いますが、Android2.2に同梱されているApacheHTTPクライアントを使用した例を次に示します。

こちらもご覧ください(レベル1以降で利用可能):

于 2012-10-07T16:25:24.757 に答える