0

我想显示一个警告对话框并让用户输入是否运行 AsyncTask。但是 AsyncTask 无论如何都会运行,即使我将它放在 if 语句中也是如此。有谁知道为什么会这样?这是我的代码:

button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Boolean b = false;

            AlertDialog.Builder alertbox = new AlertDialog.Builder(
                    ThisScreen.this);
            alertbox.setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                            b = true;
                        }
                    });
            alertbox.setPositiveButton("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface arg0, int arg1) {
                            b = false;
                        }
                    });

            alertbox.setTitle("Title");
            alertbox
                    .setMessage("Continue?");
            alertbox.show();

            if(b)
                new doAsyncTask().execute;

    }
});
4

2 回答 2

2

我不知道它是否有任何区别,但合乎逻辑的事情是使用 setNegativeButton() 方法设置无按钮。

于 2011-05-10T08:59:11.060 回答
1

你应该移动代码来运行里面的任务

alertbox.setPositiveButton("Yes",
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            runMyDoAsyncTask(); // <-- here
        }
    });

顺便说一句,我不确定您提供的代码是否会编译:)

于 2011-05-10T08:37:43.550 回答