"1,問題: 應用長期在後臺的場景下,進入前臺時,fragment顯示為空白 2,app框架大體實現: 1個activity+多個Fragment,使用的是add()方法以及 hide(),show(
阿新 • • 發佈:2019-02-04
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;
}
}
}
}