因此,无论是在SO上还是在网络上的其他地方(例如https://sites.google.com/site/jalcomputing/home/mac-osx-android-programming-tutorial/saving-instance-state),我都阅读了大量有关该主题的内容。但是我还是不明白。所以这是我的情况。 CatActivity正在运行。然后,通过单击操作栏中的图标拉出抽屉,然后从抽屉中选择DogActivity。从DogActivity中启动ChickenActivity,然后从中启动CatActivity。当我返回CatActivity时,我的savedInstanceState
为null。在我离开之前,我这样做:
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putLong("important value", data);
System.out.println("testing: " + data);
super.onSaveInstanceState(outState);
}
但是当我返回
onRestoreInstanceState
时不会被调用。因此,我在onCreate
中尝试了该手册:if (savedInstanceState != null) {
data = savedInstanceState.getLong("important value");
System.out.println("important value returned: " + data);
}
但是这里是空的。
关于如何解决此问题的任何意见?
最佳答案
尝试交换您的超级通话:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putLong("important value", data);
System.out.println("testing: " + data);
}