1
当我成功地将数据保存到onSaveInstanceState方法中的Bundle时,我找不到为什么saveInstanceState在onCreate方法中始终为null。 当我在AVD上运行程序并单击后退按钮(销毁活动),然后通过单击其图标再次创建它时,保存的状态始终为空。 这是一个测试这个问题的简单程序。单击后退按钮后重新创建活动状态
package com.example.myTestApp;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.button);
if(savedInstanceState == null){
button.setText("No");
}else{
button.setText("Yes");
}
}
static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
private int mCurrentScore = 1;
private int mCurrentLevel = 2;
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
}
}
请告诉我如何解决这个问题,如果可能的话。
那么如何在这种情况下存储数据呢? – OrdinaryProgrammer
在SharedPreferences中保留数据。 – Francesc
好的,非常感谢:) – OrdinaryProgrammer