gpt4 book ai didi

android - 显示对话框时出现 java.lang.IllegalStateException 错误

转载 作者:行者123 更新时间:2023-11-29 01:40:26 27 4
gpt4 key购买 nike

刚刚在应用商店开发者控制台上收到两个“崩溃和 ANR”,其中包含以下错误:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1354)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1372)

我逻辑上发现了错误:我有一个异步回调,用于发出 HTTP 请求。如果我单击进行 HTTP 调用的按钮然后单击返回(即关闭 Activity ),我会收到此问题。

这是导致问题的代码:

    ResponseErrorHandler errHdl = new ResponseErrorHandler();
DialogFragment dialogFragment = errHdl.HandelError(error, responseBody);
FragmentManager fragMan = getSupportFragmentManager();
dialogFragment.show(fragMan, TAG + "ErrorDialog");

因此,如果我正确理解正在发生的事情是我的 Activity 正在关闭,那么对话框 fragment 会在 Activity 消失时尝试显示对话框。

我确实在 Activity 结束时取消了我的网络请求:

@Override
protected void onStop() {
super.onStop();
Network.cancelRequests(ConnectingActivity.this);
}

最佳答案

您可以检查 Activity 是否is being closed/killed在显示对话框并采取相应行动之前。

例如:

if (!parentActivity.isFinishing()) {
dialogFragment.show(fragMan, TAG + "ErrorDialog");
}

希望这对您有所帮助。

关于android - 显示对话框时出现 java.lang.IllegalStateException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011651/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com