我有一個已經實現onCancel方法的進度對話框,因爲我想在用戶按下後退鍵時取消它,但問題是當用戶按下屏幕時,對話框被取消,onCancel方法被調用。當用戶按下屏幕時會調用Dialog onCancel方法
我該如何避免這種情況?
這是代碼:
public void showProgressDialog(Context ctx, String text_connecting) {
if (this.progress == null) {
this.progress = ProgressDialog.show(ctx, "", text_connecting, true,
true);
this.progress.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
hideProgressDialog();
}
});
}
this.progress.show();
}
您必須檢查是否當前顯示的進度對話框(在一個線程),如果顯示的軌道運動事件中創建線程。如果在顯示設置取消時運動事件關閉 - 可以爲假。如果您想擺脫持續輪詢並保持CPU繁忙,您還可以使用本地廣播。 – Skynet
另一個解決方案是重寫onBackPress。將對話框設置爲不可取消,然後按取消。這樣你的對話不會在觸摸事件中被取消。多數民衆贊成在這種情況下,這是正確的! – Skynet