当Activity返回前台时,AlertDialog是不可见的

Fak*_*ear 6 multithreading android android-alertdialog

我写了一个程序支持下载文件.在此下载活动中,我启动进度条,然后运行一个线程来执行下载操作.此线程向UI线程发送消息,以通知已经经常下载的数量.在主(UI)线程中,我在接收消息时更新进度条显示.如果下载进度中出现任何问题,它将发送另一条消息.当主线程收到消息时,它会停止进度条并弹出一个新的AlertDialog以显示错误原因.

这是一个特殊的测试.下载时,将程序切换到设置.关闭WIFI/GPRS以关闭网络.

当我回到我的程序时,它应该显示背景ui和弹出AlertDialog以显示我想要的原因.但它只显示背景ui(这意味着主要活动)和背光半亮,就像弹出窗口仍在那里一样.当我第一次按回时,没有任何反应,除了背光是明亮的,就像我关闭了一个弹出窗口.

我想也许是因为当我启动AlertDialog时,我的活动不在前台.

我试着用:

ActivityManager am = (ActivityManager)Update.this.getSystemService(Context.ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
Run Code Online (Sandbox Code Playgroud)

判断最高活动是否是我的.但我想展示对话框.如果用户没有看到活动,当他回到我的活动时,我希望它显示对话框.

Mos*_*ses 3

事实上,对话框已经显示,但用户不可见,如果旋转设备,它就会变得可见。

如果当活动不在前台时关闭进度对话框并立即显示另一个新对话框,则似乎存在刷新/绘图问题。在我的测试过程中,如果等待进度对话框的关闭操作完成然后显示新对话框,则不会发生此类问题。

因此,一种解决方案是先显示 AlertDialog,然后关闭 ProgressDialog。这对我的申请有用。