Android 主屏幕导致灰色屏幕时显示对话框
我正在运行asynctask,完成后,我将关闭progressDialog并相应地调用AlertDialog:Android 主屏幕导致灰色屏幕时显示对话框,android,Android,我正在运行asynctask,完成后,我将关闭progressDialog并相应地调用AlertDialog: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Test") .setCancelable(false) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Test")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = builder.create();
alert.show();
应用程序上的Standy
WindowManager
。这将不适用于对话框,您必须构建一个对话框布局并手动附加它,它将保持在前景之上根据Android设计指南,当异步任务完成且活动处于后台(暂停)时,您应该显示通知而不是AlertDialog。要决定应该显示什么,请在活动中维护一个布尔变量。在
Activity.onResume()
中将变量设置为true,在Activity.onPaused()
中将变量设置为false
基本上,您可以在AsyncTask
中实现onPostExecute
。在这里,您可以使ProgressBar不可见,并使用问题中显示的代码显示警报对话框
有关AsyncTask
的更多信息
有关通知的更多信息
电话在这里。向下滚动至“向用户发送通知”。本质上,在后台处理AsyncTask就像运行一个服务。至少从用户体验的角度来看。您的方法和服务之间的差异是内部的,例如,当您的流程需要不同的空间时,Android会终止您的流程。您是否可以编辑您的问题,以包含您获得灰色屏幕所需的确切流程。我编辑了我的问题,希望现在更清楚。你希望你的AlertDialog在你的应用程序不在前台时出现,还是在你的应用程序返回前台时简单地显示?嗯,实际上我能期望的是,无论我在前台还是后台,对话框都会出现。当然,我可以添加一些逻辑,使其在恢复时出现,但我想我可以期望在后台显示对话框,不是吗?所以我假设没有“简单”的方法来实现这一点?我想我想再次重新设计我的应用程序:D谢谢Jug6ernat!不改变你的想法是不容易的。这里的问题是你试图违背安卓用户界面的生命周期。(当你按下home(主页)按钮时,它应该返回主页)。这是可以做到的,但需要一些难看的意大利面代码。嗯,你能给我提供指南的链接吗?我似乎只能找到这些信息:“持续通知让用户了解后台正在进行的流程。”@Rendy。刚刚意识到我把你的名字弄错了。与此同时,我在我的答案中添加了一个与指南的链接。