Android 单击“上一步”按钮后重新创建活动状态
当我在onSaveInstanceState方法中将数据成功保存到Bundle时,我无法找出为什么onCreate方法中的savedInstanceState总是为null。 当我在AVD上运行我的程序并单击“上一步”按钮(销毁活动),然后通过单击其图标再次创建程序时,保存的状态始终为空。 下面是一个测试这个问题的简单程序Android 单击“上一步”按钮后重新创建活动状态,android,Android,当我在onSaveInstanceState方法中将数据成功保存到Bundle时,我无法找出为什么onCreate方法中的savedInstanceState总是为null。 当我在AVD上运行我的程序并单击“上一步”按钮(销毁活动),然后通过单击其图标再次创建程序时,保存的状态始终为空。 下面是一个测试这个问题的简单程序 package com.example.myTestApp; import android.app.Activity; import android.os.Bundle;
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);
}
}
如果可能,请告诉我如何解决此问题。这是意料之中的。按“上一步”时,活动将被销毁,其拥有的数据将丢失。在此之后,当您重新打开应用程序时,由于正在创建一个新的、新的实例,因此捆绑包中始终会出现null 由于某些更改(如旋转)或由于在后台长时间暂停而重新创建活动时,将使用Bundle savedInstanceState
如果你想保留一些数据,考虑SytPosiple为小的东西,或者可能是一个数据库(SQLite,Valite)或大文件的文件。< /P>所以我如何存储数据在这样的情况下?在SyrdPoad中保存数据。不要忘记标记为解决的,这是一种欣赏帮助的方式;