0
私のアプリでは、Webサービスからの応答を受け取った後、ダイアログの断片を表示しています。私はこのサービスをonCreate
から呼び出しています。アプリがバックグラウンドになった場合の間では、それは私がthis blog post通過した例外Android:DialogFragment showはWebサービスコール後に不正な状態例外をスローする
Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1511)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:638)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:617)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:139)
at com.activity.MainActivity.showAcceptancePopup(MainActivity.java:1655)
at com.activity.MainActivity.access$1000(MainActivity.java:164)
at com.activity.MainActivity$28.onResponse(MainActivity.java:1568)
at com.activity.MainActivity$28.onResponse(MainActivity.java:1547)
at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
でクラッシュ。それでも疑問がある場合は、dialogFragment.show()
とはどこから呼び出す必要があるかは、サーバーによって提供されるデータによって異なります。
それ以外の場合は、onCreate
からonResumeFragment
にAPI呼び出しを移動する必要がありますか?
できますが、私は状態の損失が発生しないようにしたい – Nitish
私は、あなたのフラグメントトランザクションをやっていますか? – Cochi
私はonCreateからWebサービスコールを行っていますが、それに応じてダイアログが表示されます。 API呼び出しの場合、私はボレーを使用しています – Nitish