当屏幕旋转时...... Toast 什么都不打印!
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String a = savedInstanceState.getString("hello");
Toast.makeText(MainActivity.this, a, Toast.LENGTH_SHORT).show();
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
String a = "WTF";
outState.putString("hello",a);
}
我很好地声明了一切,这个简单的代码中的无赖在哪里!?
最佳答案
我认为自从 Android OS 团队重载了 onSaveInstanceState()
方法以来,您已经陷入了许多开发人员常犯的陷阱。
您正在覆盖错误的方法。你想要的是:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
String a = "WTF";
outState.putString("hello",a);
}
就个人而言,我认为 Craig Mautner 应该在每次 Android 开发人员犯此错误时被迫捐款 - source
关于android - onSaveInstanceState 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37218859/