1. 程式人生 > >"1,問題: 應用長期在後臺的場景下,進入前臺時,fragment顯示為空白 2,app框架大體實現: 1個activity+多個Fragment,使用的是add()方法以及 hide(),show(

"1,問題: 應用長期在後臺的場景下,進入前臺時,fragment顯示為空白 2,app框架大體實現: 1個activity+多個Fragment,使用的是add()方法以及 hide(),show(

程式碼如下:                                                                                                                                                                                                                                                                                                                      @Override
    protected void onSaveInstanceState(Bundle outState) {
//        super.onSaveInstanceState(outState);
    }
這樣的解決辦法是不對的,這樣會導致從activity被銷燬是不能記住之前的顯示內容,從而使介面空白、為了解決fragment重疊,你可以在註釋掉super.onSaveInstanceState(outState)的同時,加上儲存當前fragment的程式碼

@Override
protected void onSaveInstanceState(Bundle outState) {
    outState.putString(SPConst.SHOW_TAG, showFragmentTag);
}
然後在回來的時候重新獲取之前的fragment,然後再顯示出來

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    if (savedInstanceState != null) {
        showFragmentTag = savedInstanceState.getString(SPConst.SHOW_TAG);
        if (showFragmentTag != null) {
            showFragment = fragmentManager.findFragmentByTag(showFragmentTag);             
            switch (showFragmentTag) {
                case fragmentTag1:
                    workFragment = showFragment;
                    break;
                case fragmentTag2:
                    patientFragment = showFragment;
                    break;
                case fragmentTag3:
                    synergyFragment = showFragment;
                    break;
                case fragmentTag4:
                    toolFragment = showFragment;
                    break;
                case fragmentTag5:
                    mineFragment = showFragment;
                    break;
            }
        }
    }
}