我正在使用进度对话框来检索Flickr照片,我的要求是1)即使我触摸屏幕也显示进度对话框 2)如果我单击后退按钮,asyn任务应该取消并返回上一页
第二个要求在这里我试过,它即将到来,但我没有得到第一个要求。你能不能帮我解决这个问题
这是我的onPreExecute代码
DownloadTask asyncClassObject;
private class DownloadTask extends AsyncTask<String, Integer, String>{
protected void onPreExecute() {
super.onPreExecute();
**asyncClassObject = new DownloadTask();**
// Showing progress dialog
pDialog = ProgressDialog.show(Flickeralbumlist.this,"Flickr Album","please wait...",true,true,new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
DownloadTask.this.cancel(true);
finish();
}
});
pDialog.setCanceledOnTouchOutside(false);
pDialog.setCancelable(false);
**asyncClassObject.execute();**
}
}
@Override
public void onBackPressed() {
// cancel AsyncTask
if (asyncClassObject != null)
asyncClassObject.cancel(true);
// dismiss ProgressDialog
if(pDialog !=null)
if(pDialog.isShowing())
pDialog.dismiss();
super.onBackPressed();
}
这里我使用了这行“pDialog.setCanceledOnTouchOutside(false);”即使我没有得到正确的输出,你能不能帮我解决这个问题。
答案 0 :(得分:1)
1)即使我触摸屏幕也会显示进度对话框
创建setCancelable
后添加ProgressDialog
:
pDialog.setCanceledOnTouchOutside(false);
pDialog.setCancelable(false);
2)如果我点击后退按钮,asyn任务应取消并返回 上一页
使用真值调用AsyncTask.cancel
:
@Override
public void onBackPressed()
{
// cancel AsyncTask
if (asyncClassObject != null)
asyncClassObject.cancel(true);
// dismiss ProgressDialog
if(pDialog !=null)
if(pDialog.isShowin())
pDialog.dismiss()
super.onBackPressed();
}
答案 1 :(得分:1)
使用以下代码获取Click事件.....
View view = (View)findViewById(R.id.mainLayout);
view.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
System.out.println("Clicked!!!"); /// Write your Code for Progress Here....
return true;
}
});