2016-03-13 37 views
0

我們在我們有定義如下的Android本地存儲陣列列表,並使用它

public final static ArrayList<String> Arraylist1= new ArrayList<String>(){{ 
    }}; 
    public final static ArrayList<String> Arraylist2= new ArrayList<String>(){{ 
    }}; 
    public final static ArrayList<String> Arraylist3= new ArrayList<String>(){{ 
    }}; 

我們在每當網絡之間更新此數組列表幾個陣列列表應用程式available.So它會像同步應用程序。我們現在面臨的問題是,每次應用程序啓動時,它都會初始化數組列表並等待第一次同步。有沒有辦法在本地存儲更新的數組列表,以便即使同步不會發生,因爲網絡不可用,它不會影響應用程序的功能。

+0

您可以將它們保存在共享首選項中,並在每次有新數據時更新它們 –

回答

0

您必須在本地存儲您需要的內容,如果網絡不可用,請使用本地「較舊」版本。

主要可能性是3:

  1. 共享偏好:文件,可以應用或私人之間共享並且它是由一對夫婦鍵值來存儲數據。
  2. SqlLite DB:一個正常的關係數據庫。
  3. 文件,例如json文件與你自己的結構。 (在這裏,你是完全免費)
0

你可以像這樣

SharedPreferences.Editor editor = sharedpreferences.edit(); 

editor.putString(Name, n); 
editor.putString(Phone, ph); 
editor.putString(Email, e); 
editor.commit(); 

,你只是NEAD讀取數值,然後更新服務器後...

或者你也可以存儲在一個文件中,當有連接到互聯網上傳

0

這取決於你處理什麼樣的數據。如果它的數量和重量數據我不喜歡sharedPreferences。

最佳做法是將數據保存在Sqlite數據庫中,並在需要時取回。

另一種方法是使arraylist靜態像你所做的一樣。這將保持一段時間的價值。並且會比共享偏好或Sqlite DB更快地讀取和寫入。但你不能依靠靜態變量。它們的壽命取決於GC。