2015-09-04 41 views
1

我正在開發Android應用程序以用於家庭自動化。 我正在爲具有不同數據字段的設備(家用電器)創建對象,例如設備名稱,設備ID和設備狀態等。 我想將這些對象數據存儲在Android存儲器中,以便即使重新啓動我的應用程序,我也可以訪問這些數據。如何在Android中存儲對象,以便即使重新啓動應用程序時也可訪問對象

我研究發現Internal Storage和SQLite有兩種方法可以用來存儲這種類型的數據。 哪種方法更適合此應用?

+0

是什麼樣的對象呢?它包含什麼? – KOTIOS

+0

如果數據有限,請使用共享首選項。 – SANAT

+0

它是我創建的簡單java類的對象(實例)。 – vipin

回答

0

做這樣的事情:

您可以存儲的onSaveInstanceState中的束()作爲Parcelable對象Java對象。但是你的模型類將不得不實現Parcelable接口。

你已經在你的模型類實現Parcelable接口後,覆蓋在你的活動/片段的onSaveInstanceState()方法:現在

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    outState.putParcelable(OBJ_KEY,yourObject); 
} 

,在你onCreate方法從包中獲得的價值:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if(savedInstanceState!=null){ 
      yourPreservedObj = savedInstanceState.getParcelable(OBJ_KEY);//when your app re starts you have your object here. 

     } 
} 
+0

但如果關閉並重新啓動應用程序,saveInstanceStates是否可訪問? – vipin

+0

不,如果應用程序真的關閉 – user2122552

+0

在這種情況下,我的朋友,最好的選擇是使用SQLite數據庫。將urj obj序列化成字節流並存儲它。 –

相關問題