2012-12-13 62 views
0

當連接到服務器時,我得到Cookies並將它們存儲在列表中。如何將Cookie存儲爲持久數據?

在以後進行連接時,我將這些cookie添加到DefaultHttpClient。

的問題是,當應用程序在後臺某個時候,所有的類數據丟失,包括DefaultHttpClient

因此,我是丟失曲奇

有沒有辦法讓DefaultHttpClient永遠活着?

或任何更好的方式來存儲和使用cookie?

謝謝

回答

0

從cookie獲取它,然後將其保存在共享prefferences當應用程序被終止(例如的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的代碼,我認爲這不是一個問題)

+0

的cookie可以被存儲在sharedPreferences一個字符串?在重用它的同時,我必須將它投射到(Cookie)? –

+0

Cookie VALUE是一個字符串,您可以保存該字符串。這是您需要知道重新創建Cookie的唯一方法。 –

+0

使用** BasicClientCookie(「名稱」,「值」)**和** BasicHttpContext()** –

相關問題