因此,无论是在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);

}

07-27 23:32