目前我正在编写android应用程序,其主要功能只是在屏幕上进行手指绘画。主要问题是如何存储应用程序的数据模型。最佳做法是什么?当前数据模型如下所示:
public class BoardModel {
public Bitmap mBoard;
public int mLineWidth = 1;
public int mForegroundColor = Color.GREEN;
public int mBackgroundColor = Color.BLACK;
}
该类在调用主活动的onCreate方法时被实例化。在它的生命周期中,活动可以被破坏。例如,当用户将设备方向从纵向更改为横向时,就会发生这种情况。因此,为了存储我的模型,我将像这样覆盖onSaveInstanceState:
protected void onSaveInstanceState(Bundle outState) {
outState.putParcelable(KEY_MODEL, mModel);
}
并像这样修改onCreate方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (savedInstanceState == null) {
mModel = new BoardModelParcelable();
} else {
mModel = savedInstanceState.getParcelable(KEY_MODEL);
}
}
我还添加了以下类来实现Parcelable接口
public class BoardModelParcelable extends BoardModel implements Parcelable{
....
}
问题是当我将任何数据添加到我的模型时,我必须修改BoardModelParcelable来存储它。例如,我打算添加描述仪器的类,用于绘制一些东西。在这种情况下,我需要为仪器创建另一个类,实现Parcelable接口?或者我应该在BoardModelParcelable中存储仪器数据?看起来我必须实现太多可打包的对象。任何想法如何存储我的模型数据而无需创建这么多的保存代码?