[英]dismissing Progress Dialog
我有一种情况,我正在加载一堆图像。 在此过程中,我试图显示一个进度对话框,直到图像完全加载。 我已经overrided
了onBackPressed()
方法,这样当用户按下后退按钮时,活动将完成。
但是,如果我在显示进度对话框时按下后退按钮,则不会调用后退键事件。 所以我尝试提供progressDialog.setCancelable(true)
。 所以现在这允许我关闭进度对话框,但无论如何都不会调用我的后键事件,因此我的活动会在后台加载图像。
那么,当用户按下后退键时,如何使progressDialog
和活动都停止。
使用Dialog.setOnCancelListener取消您的后台任务
好的。 我终于找到了解决办法。
progressDialog.setCancelable(true);
progressDialog.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
Log.i("inside on cancel","Cancel Called");
finish(); //If you want to finish the activity.
}
});
在不同的线程中加载您的图像。 当用户表示他们想要取消加载时,设置一个在加载线程的处理循环中检查的标志。 您还可以调用加载线程的 interrupt() 方法来处理线程卡在 wait() 或 sleep() 之类的情况。
使用 onKeyDown() 方法,但是您必须检查对话框是否正在显示,按下的按钮是否是“返回”按钮,您还应该调用 super.onKeyDown() 以确保默认方法也被执行。
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && progressDialog.isShowing())
{
// DO WHATEVER YOU WANT
}
// Call super code so we dont limit default interaction
super.onKeyDown(keyCode, event);
return true;
}
您可以粘贴代码以获得正确答案吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.