我有一个异步任务在工作时显示进度对话框(它调用在UiThread上运行从内部后台操作显示进度对话框)。
在运行时我想允许使用后退按钮取消操作;其他人遇到过这个问题:当 ProgressDialog 正在运行时,后退按钮不起作用 https://stackoverflow.com/questions/4919676/back-button-is-not-working-while-progressdialog-is-running
出于什么原因我无法回复该线程,因此必须开始另一个线程?! (改天再问另一个问题)
我和桑迪有同样的想法,但这段代码在进度对话框正在显示,这是为什么?我已经在我的主要活动类中实现了它,进度对话框让前景焦点暂时离开我的班级?
首先,您应该显示您的对话框OnPreExecute
,将其隐藏在OnPostExecute
,并且 - 如有必要 - 通过发布进度来修改它。 (看here http://developer.android.com/resources/articles/painless-threading.html)
现在回答你的问题:ProgressDialog.show()
可以采取OnCancelListener
作为一个论点。您应该提供一个可以调用的cancel()
在进度对话框实例上。
example:
@Override
protected void onPreExecute(){
_progressDialog = ProgressDialog.show(
YourActivity.this,
"Title",
"Message",
true,
true,
new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
YourTask.this.cancel(true);
finish();
}
}
);
}
where _progressDialog
is a ProgressDialog
成员YourTask
.
此类在 API 级别 26 中已弃用。ProgressDialog 是一个模态对话框
对话框,阻止用户与应用程序交互。反而
使用此类时,您应该使用类似的进度指示器
ProgressBar,可以嵌入到应用程序的 UI 中。或者,
您可以使用通知来通知用户任务的进度。LINK https://developer.android.com/reference/android/app/ProgressDialog
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)