2015-09-04 19 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序列化成字节流并存储它。 –

相关问题