0

サーバーに接続すると、Cookieを取得してリストに保存します。

後で接続するときに、これらの Cookie を DefaultHttpClient に追加します。

問題は、アプリケーションがしばらくの間バックグラウンドにある場合、 DefaultHttpClient を含むすべてのクラス データが失われることです。

したがって、私はクッキーを失っています。

DefaultHttpClient を永遠に存続させる方法はありますか?

またはクッキーを保存して使用するためのより良い方法はありますか?

ありがとうございました

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 に答える