public class SerializedCookie implements Serializable {
private static final long serialVersionUID = 5327445113190674523L; //arbitrary
private String name;
private String value;
private String domain;
public SerializedCookie(Cookie cookie){
this.name = cookie.getName();
this.value = cookie.getValue();
this.domain = cookie.getDomain();
}
public String getName(){
return name;
}
public String getValue(){
return value;
}
public String getDomain(){
return domain;
}
}
DefaultHttpClient client; //declared here, but get the client however you must.
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
List<Cookie> cookies =client.getCookies();
if (!cookies.isEmpty()){
Cookie sessionInfo = cookies.get(0);
outState.putSerializable("sessionInfo", new SerializedCookie(sessionInfo));
}
DefaultHttpClient client; //declared here, but get the client however you must.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (client.getCookies().isEmpty()){
if (savedInstanceState.containsKey("sessionInfo")){
SerializedCookie cookie = (SerializedCookie) savedInstanceState.
getSerializable("sessionInfo");
BasicClientCookie newCookie = new BasicClientCookie(cookie.getName(),
cookie.getValue());
newCookie.setDomain(cookie.getDomain());
client.addCookie(newCookie);
} else {
//for whatever reason the session information couldn't be obtained,
//take action here
}
}