У меня есть фрагмент с WebView, где я перезаписываю определенный URL, чтобы вызвать переход к другому фрагменту.Я не могу воспроизвести его, но я получаю отчеты о сбоях со следующей трассировкой стека:
Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at androidx.fragment.app.FragmentManagerImpl.checkStateLoss(SourceFile:2080)
at androidx.fragment.app.FragmentManagerImpl.enqueueAction(SourceFile:2106)
at androidx.fragment.app.BackStackRecord.commitInternal(SourceFile:683)
at androidx.fragment.app.BackStackRecord.commit(SourceFile:637)
... (navigation library calls)
at app.Activity.navigate(SourceFile:70)
at app.WebFragment$onDone$1.invoke(SourceFile:25)
at app.WebViewClient.shouldOverrideUrlLoading(SourceFile:29)
at jU.b(PG:83)
at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(PG:172)
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Я думаю, это потому, что app.Activity.navigate
вызван после остановки Activity, и поэтому checkStateLoss()
возвращает true.
Если действие остановлено, не должен ли WebView уничтожить и прекратить вызывать обратные вызовы?
Или я должен вызвать WebView#onDestroy()
в какой-то момент в моем фрагменте (в onStop
или в другом месте)событие жизненного цикла)?