当连接到服务器时,我得到Cookie并将它们存储在列表中。
稍后进行连接时,我将这些 cookie 添加到 DefaultHttpClient。
问题是,当应用程序处于后台一段时间时,所有类数据都将丢失,包括 DefaultHttpClient。
因此我失去了饼干。
有没有办法让 DefaultHttpClient 永远活着?
或任何更好的方式来存储和使用 cookie?
谢谢你
当连接到服务器时,我得到Cookie并将它们存储在列表中。
稍后进行连接时,我将这些 cookie 添加到 DefaultHttpClient。
问题是,当应用程序处于后台一段时间时,所有类数据都将丢失,包括 DefaultHttpClient。
因此我失去了饼干。
有没有办法让 DefaultHttpClient 永远活着?
或任何更好的方式来存储和使用 cookie?
谢谢你
从 cookie 中获取它,然后在应用程序被终止时将其保存在共享首选项中(例如 onStop 方法)。然后在 onCreate() 上重新加载它。与此类似的东西:
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String silent = settings.getString("cookie", null);
if(cookie == null) {
// first time, get cookie again and save it
} else {
// set cookie manually for HTTPClient
}
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("cookie", theCookie);
// Commit the edits!
editor.commit();
}
}
(我省略了获取和设置 cookie 的代码,我认为这不是问题)