saveInstanceState() の後の popBackStack() 質問する

saveInstanceState() の後の popBackStack() 質問する

複数のフラグメントを持つアクティビティがあるという問題が発生しています。個々のフラグメントに対して検索操作を実行できます。これは問題なく機能します。いずれかのフラグメントから検索すると、検索を処理する新しいアクティビティが表示され、その結果がアクティビティに返されて新しいフラグメントの表示が処理されます。問題は、検索操作の後に を使用して (ほぼ) すべてのフラグメントをクリアできるようにしたいのですpopBackStackImmediate(...)が、が呼び出されるとsaveInstanceState(...)、次のような例外が発生することです。

"java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState"

onSaveInstanceState呼び出された後にバックスタックからポップする方法をご存知ですか?

ベストアンサー1

どうやら私の問題は、onActivityResult(...) で行われた呼び出しから発生したようです。

UI 変更コードを Runnable 内に配置し、その Runnable をメイン スレッドに投稿することで、この問題を解決できました。

Runnable r = new Runnable() {
    @Override
    public void run() {
        // UI code here
    }
};
Handler h = new Handler();
h.post(r);

おすすめ記事