android-discuss icon indicating copy to clipboard operation
android-discuss copied to clipboard

app crash后界面恢复,为什么注释了super.onSaveInstanceState(outState)的activity也能正常恢复?

Open hss01248 opened this issue 7 years ago • 3 comments

这是项目中真实遇到的情况. activity的这个方法注释后不应该是什么状态也没有保存,所以恢复时界面应该是一片空白或者因为没数据崩溃吗? 求各位大神解惑

@Override
    protected void onSaveInstanceState(Bundle outState) {
        //super.onSaveInstanceState(outState);
    }

相关问题: https://github.com/android-cn/android-discuss/issues/256 https://github.com/android-cn/android-discuss/issues/123 app崩溃后,带fragment的activity恢复的坑

hss01248 avatar Apr 09 '18 02:04 hss01248

哪个傻屌教你注释掉系统的生命周期方法的😑 fragment自动重建的问题,不是应该“先find,没有再new”吗?

ipcjs avatar Apr 09 '18 04:04 ipcjs

控件有自己的状态恢复方法,activity类的这个方法主要是给你保存数据的。

csbz17027 avatar May 19 '18 05:05 csbz17027

刚看了一下代码,默认实现应该是会恢复View(带ID)和fragment的状态的

 outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState());

        outState.putInt(LAST_AUTOFILL_ID, mLastAutofillId);
        Parcelable p = mFragments.saveAllState();

如果你覆盖了 并且注释了,应该不会恢复状态。 不清楚你的具体情况,你是否是指view也不会恢复了? 那跟这个没关系,这个只是恢复view自带的数据,比如edittext的输入内容等

Amoi avatar Jul 23 '18 04:07 Amoi