应用程序我正在构建正在执行的任务,ProgressDialog在屏幕上盘旋'并且'回合。
如何在任何给定时间为用户提供突破该对话框的能力,立即消失对话框并阻止任务在中期执行?
答案 0 :(得分:0)
试试这个,如果它是AsyncTask:
dialog = ProgressDialog.show(
Activity.this,
"",
"Loading the results...Please wait.",
true,
true,
new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
*YourTask*.this.cancel(true);
}
}
);
答案 1 :(得分:0)
我无法弄清楚要放入nibha发布的 YourTask 占位符。 (我已经尝试了nibha在同一地点的剪辑,Lalit Poptani的短剪辑成功地只消失了对话框消息。)无论如何,以下是该类(为了简单起见,删除了声明和其他内容以传达问题)。它在屏幕上绘制了一些东西。我只是希望例程在消息对话框消失的同时立即停止。 (再次感谢您的帮助):
public class WhateverActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mWhatView = new WhateverView(this);
setContentView(mWhatView);
whatever = new Whatever();
whatever.addListener(mWhatView);
whatever.execute(this);
mDialog = ProgressDialog.show(
WhateverActivity.this,
"",
"Loading the results...Please wait.",
true,
true,
new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
*YourTask*.this.cancel(true);
}
}
);
}
private class WhateverView extends View implements WhateverListener {
@Override
public void whateverDone() {
}
@Override
public void whateverPart(ArrayList<Float> list) {
synchronized (this) {
Iterator<Float> iter = list.iterator();
...
}
}
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
...
}
@Override
protected void onDraw(Canvas canvas) {
synchronized (this) {
if (mBitmap != null) {
canvas.drawBitmap(mBitmap, 0, 0, null);
}
}
}
}
}