Замена фрагментов в действиях SingleTask - PullRequest
0 голосов
/ 06 мая 2020

Действие A - это однозадачное действие. В его обратном вызове OnCreate я создаю и присоединяю фрагмент к макету.

Действие B теперь запущено, A приостановлено, и его OnSaveInstanceState вызывается.

Activity A теперь повторно вызывается с помощью новое намерение (из-за взаимодействия в B). В OnNewIntent () я создаю новый фрагмент на основе нового намерения и заменяю предыдущий фрагмент.

Это приводит к IllegalStateException: не удается выполнить это действие после onSaveInstanceState.

Как правильно это сделать? Похоже, фреймворк по-прежнему считает A приостановленным, даже если был вызван OnNewIntent ().

1 Ответ

1 голос
/ 06 мая 2020

Вам необходимо вызвать super.onNewIntent(intent), чтобы обновить состояние FragmentManager, чтобы вы могли выполнять FragmentTransactions.

...