19

Activity onStartメソッドの次の例外を除いて、一部のユーザーのデバイスでアプリが継続的にクラッシュするという深刻な問題があります。

Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:123) 

このエラーをエミュレータでローカルに再現できません。私はstackoverflowでこの問題に関するいくつかの質問を見つけました: ここここ

私は提案された解決策を試しました。つまり、フラグメントでもアクティビティでも、onSaveInstanceで空のバンドルを許可しないでください。

しかし、問題は残っています。これは私が今までに受け取った唯一のクラッシュレポートであり、私はそれを継続的に受け取ります。

誰かが実用的な解決策を持っていますか?

4

3 に答える 3

8

私はこの問題を解決しました

  • サポート ライブラリをリビジョン 10 にアップグレードする
  • ここに投稿された回避策を使用してください: http://code.google.com/p/android/issues/detail?id=23096 すなわち。onResumeFragments に非 UI フラグメントを追加し、リスナー コールバックでさらにトランザクションを呼び出します。

コードについては、こちらの回答を確認してください: 「onSaveInstanceState の後にこのアクションを実行できません」 - アクティビティの onResume メソッドからこの例外が発生するのはなぜですか?

これまでのところ、IllegalStateException は発生していません。

于 2012-08-13T09:40:12.803 に答える
4

この回避策を使用してこれを解決しました。つまり、コードをonPostResume()アクティビティのメソッド関数に入れました

于 2013-01-07T02:37:16.097 に答える