gpt4 book ai didi

android - android.view.WindowManager $ BadTokenException : Unable to add window — token android. os.BinderProxy@27773032无效;您的 Activity 正在进行吗?

转载 作者:行者123 更新时间:2023-12-03 18:06:49 27 4
gpt4 key购买 nike

错误:android.view.WindowManager $ BadTokenException:无法添加窗口- token android.os.BinderProxy@27773032无效;您的 Activity 正在进行吗?

代码

@Override
public void showInviteDialog(final IncomingInvite incomingInvite) {
// setCallAlert2(incomingInvite);

runOnUiThread(new Runnable() {
@Override
public void run() {

alertDialog = Dialog.createInviteDialog(incomingInvite.getInviter(),
acceptCallClickListener(incomingInvite), rejectCallClickListener(incomingInvite),
HomeActivity.this);
alertDialog.show();
}
});

}

尝试过的解决方案
  if(!isFinishing()){

alertDialog = Dialog.createInviteDialog(incomingInvite.getInviter(),
acceptCallClickListener(incomingInvite), rejectCallClickListener(incomingInvite),
HomeActivity.this);
alertDialog.show();
}

输出:无崩溃。但没有 警报

检查了类似的问题,但我没有找到任何确切的解决方案,都是为了避免崩溃(例如检查 Activity 是否存在等)。不用于显示警报。

注意:必须显示警报。

最佳答案

这是正在发生的事情。在尝试显示警报之前,由于配置更改或 Activity 自然终止,您的 Activity 被杀死。由于您的 Activity 已停止,因此无权显示警报。因此异常(exception)。结束检查(或只是忽略并忽略)将通过不尝试显示警报来解决崩溃问题。

如果您的 Activity 被正常杀死,则这里无事可做。这是预料之中的,无效的 Activity 不应显示对话框。如果由于配置更改(例如轮换)而重新创建,则新 Activity 必须是显示对话框的 Activity 。如果这是由于加载数据引起的,则需要使用Loader或类似技术来确保旧的 Activity 可以访问原始数据中的加载数据。这适用于来自服务器的任何异步数据-新的Activity需要是接收它的一个,而不是旧的。

关于android - android.view.WindowManager $ BadTokenException : Unable to add window — token android. os.BinderProxy@27773032无效;您的 Activity 正在进行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38989072/

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