gpt4 book ai didi

java - 一个又一个对话框显示对话框 : HANGS

转载 作者:行者123 更新时间:2023-12-01 16:01:58 25 4
gpt4 key购买 nike

我有一个非常奇怪的问题,到目前为止我无法调试......问题是......我的应用程序需要下载一些东西才能工作。因此,在 onCreate() 方法的开头,我检查是否已经下载了某些内容。如果没有,我会弹出一个对话框,要求用户下载它。

if (!isInstalled) {
showDialog(DIALOG_INSTALL);
} else {
start();
}

start() 方法执行一些其他操作。现在,该 showDialog 调用此:

builder = new AlertDialog.Builder(MyApp.this);
builder.setMessage("Would you like to install...")
.setCancelable(false)
.setPositiveButton("Install", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
aManager.install(MyApp.this);
}
});
dialog = builder.create();
return dialog;

我的对话框已显示,我正在单击,因此 aManager.install() 被调用。我传递上下文是因为 aManager.install() 会弹出一个 ProgressDialog 以显示下载进度,并生成一个新线程,在其中下载所有内容。显然,在创建对话框之前,我创建了一个处理程序来接收来自 aManager.install() 的响应。并且响应可能会有所不同,因为例如互联网连接不可用(引发并捕获异常以及使用不同代码调用监听器)。

现在,当发生这种情况时(异常),我想调用另一个对话框,说“出了问题,你想重试吗?”...所以再次调用 showDialog(DIALOG_REINSTALL) (这次使用另一个代码)。事情是...... showDialog() 被调用(我可以通过日志记录验证这一点),但对话框没有显示。相反,我的应用程序只是挂起!?!?!?

有人知道为什么要这样做吗???没有引发异常,logcat 中绝对没有任何异常,我无法判断它卡在哪里...只需查看该方法被调用并且应该显示对话框...

非常感谢!!

最佳答案

看起来你陷入了僵局。我会将下载代码放在单独的线程上,例如使用AsyncTask。在 task.onPreExecute() 中,您可以关闭第一个对话框并弹出进度对话框,您可以通过覆盖 task.onProgressUpdate()

来更新该对话框

关于java - 一个又一个对话框显示对话框 : HANGS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628868/

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