0

当连接到服务器时,我得到Cookie并将它们存储在列表中。

稍后进行连接时,我将这些 cookie 添加到 DefaultHttpClient。

问题是,当应用程序处于后台一段时间时,所有类数据都将丢失,包括 DefaultHttpClient

因此我失去了饼干

有没有办法让 DefaultHttpClient 永远活着?

或任何更好的方式来存储和使用 cookie?

谢谢你

4

1 回答 1

0

从 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 的代码,我认为这不是问题)

于 2012-12-13T09:53:04.213 回答