java.lang.IllegalStateException: 状態の保存に失敗しました: アクティブな HomeFragment がインデックスをクリアしました: -1

例外情報

java.lang.IllegalStateException: Failure saving state: active HomeFragment{
   
   28d4dc6} has cleared index: -1
    at android.support.v4.app.af.n(FragmentManager.java:2659)
    at android.support.v4.app.ac.e(FragmentController.java:134)
    at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:571)
    at android.support.v7.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:509)
    at android.app.Activity.performSaveInstanceState(Activity.java:1318)
    at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1300)
    at android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:4539)
    at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3895)
    at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3976)
    at android.app.ActivityThread.-wrap22(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1624)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:5966)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)

解決策として、Fragment の onCreate() メソッドに setRetainInstance(true) を追加します。

 @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //在配置变化的时候将这个fragment保存下来
        setRetainInstance(true);
    }

おすすめ

転載: blog.csdn.net/qq_23288055/article/details/78606511