如何在Android中存储对象,以便即使应用程序重新启动也可以访问它们

时间:2015-09-04 12:31:19

标签: android sqlite storage

我正在为家庭自动化开发Android应用程序。 我正在为每个设备(家用电器)创建对象,这些对象具有不同的数据字段,例如设备名称,设备ID和设备状态等。 我想将这些对象数据存储在android存储中,这样即使我重启我的应用程序,我也可以访问这些数据。

我研究并发现内部存储和SQLite是两种可用于存储此类数据的方法。 哪种方法更适合此应用?

1 个答案:

答案 0 :(得分:0)

做这样的事情:

您可以将java对象作为Parcelable对象存储在onSaveInstanceState()包中。但是你的模型类必须实现Parcelable接口。

在模型类中实现Parcelable接口后,覆盖activity / fragment中的onSaveInstanceState()方法:

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

现在,在你的onCreate方法中获取bundle的值:

 @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.

        }
}