Skip to content
This repository has been archived by the owner on May 23, 2020. It is now read-only.

RuntimeException in onDestroy #25

Open
RuiRoque-FA opened this issue Oct 24, 2016 · 0 comments
Open

RuntimeException in onDestroy #25

RuiRoque-FA opened this issue Oct 24, 2016 · 0 comments

Comments

@RuiRoque-FA
Copy link

This is from RxLoaderBackendNestedFragmentCompat:

@Override
public void onDestroy() {
    super.onDestroy();
    if (!hasSavedState) {
        RxLoaderBackendFragmentHelper helper = getHelper();
        if (helper != null) {
            helper.onDestroy(getStateId());
        }
    }
}

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    hasSavedState = true;
    RxLoaderBackendFragmentHelper helper = getHelper();
    if (helper != null) {
        helper.onSaveInstanceState(outState);
    }
}

If I rotate the device, the 'onSaveInstanceState' method is invoked, and the 'hasSavedState' is set to true, and in the onDestroy, the check is ok. Nothing wrong here.

But when I press back to leave the fragment and the Activity. The 'onSaveInstanceState' is not invoked and the 'onDestroy' crashes the app:

java.lang.RuntimeException: Unable to destroy activity {my.app/my.app.activities.MyActivity}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3831)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3849)
at android.app.ActivityThread.-wrap5(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1398)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1533)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1551)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:696)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:662)
at me.tatarka.rxloader.RxLoaderBackendNestedFragmentCompat.getHelper(RxLoaderBackendNestedFragmentCompat.java:45)
at me.tatarka.rxloader.RxLoaderBackendNestedFragmentCompat.onDestroy(RxLoaderBackendNestedFragmentCompat.java:76)
at android.support.v4.app.Fragment.performDestroy(Fragment.java:2322)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1240)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1272)
at android.support.v4.app.FragmentManagerImpl.dispatchDestroy(FragmentManager.java:2186)
at android.support.v4.app.Fragment.performDestroy(Fragment.java:2318)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1240)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1272)
at android.support.v4.app.FragmentManagerImpl.dispatchDestroy(FragmentManager.java:2186)
at android.support.v4.app.FragmentController.dispatchDestroy(FragmentController.java:271)
at android.support.v4.app.FragmentActivity.onDestroy(FragmentActivity.java:388)
at android.support.v7.app.AppCompatActivity.onDestroy(AppCompatActivity.java:209)
at my.app.activities.BaseActivity.onDestroy(BaseActivity.java:73)
at android.app.Activity.performDestroy(Activity.java:6407)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1142)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3818)
... 9 more

What am I doing wrong?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant