在android中定位更改时,最好的方法来实现数据持久性?

时间:2014-09-29 10:52:57

标签: java android data-persistence

基本上标题是什么。目前,如果我的应用程序中的方向发生变化,则球会重置回到游戏的顶部,但是我希望更改我的代码,以便如果用户更改设备的方向,则球和球拍将保持在同一位置。我怎么做到这一点?我会把我的全部放在这两种方法中吗?

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);
Log.v(TAG,  "onSaveInstanceState");
}

protected void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);
Log.v(TAG,  "onRestoreInstanceState");
}

(注意我已经初步化了TAG的常量,在我的代码中没有看到) (这也是一项活动)

1 个答案:

答案 0 :(得分:0)

你可以在活动中保存球和球拍的位置,所以在活动中:

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    //If it is an integer
    outState.putInt(TAG, mBallPosition);

    //Or use a serializable if you wish to store an actual object
   outState.putSerializable(TAG, mBallPosition);
}

然后在onCreate方法中,您可以恢复状态:

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

    if (savedInstanceState != null) {
        int position = savedInstanceState.getInt(TAG,0);
        //set ball position

        //or get the object back using outstate.getSerializable(TAG) 

    }
}