質問

App Store開発者コンソールの2つの「クラッシュ&ANRS」を受信した:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1354)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1372)
.

私は論理的にエラーを見つけました:私はhttp要求を作成するために使用される非同期コールバックを持っています。HTTPコールを作成してから[戻る]をクリックします(すなわち、アクティビティを閉じる)ボタンをクリックすると、この問題が表示されます。

これは問題を引き起こすコードです:

    ResponseErrorHandler errHdl = new ResponseErrorHandler();
    DialogFragment dialogFragment = errHdl.HandelError(error, responseBody);
    FragmentManager fragMan = getSupportFragmentManager();
    dialogFragment.show(fragMan, TAG + "ErrorDialog");
.

だから私が何が起こっているのかを正しく理解しても、私の活動が終了しているということです。

アクティビティが終了したときにネットワーク要求をキャンセルします。

@Override
protected void onStop() {
    super.onStop();
    Network.cancelRequests(ConnectingActivity.this);
}
.

役に立ちましたか?

解決

アクティビティが閉じているかどうかを確認できます。ダイアログを表示してそれに応じて行動する前に殺されました。

e.:

if (!parentActivity.isFinishing()) {
    dialogFragment.show(fragMan, TAG + "ErrorDialog");
}
.

これが役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top