即使不满足if语句条件,我的AsyncTask也会运行

时间:2011-05-10 08:17:49

标签: android asynchronous dialog onclick execute

我想显示一个警告对话框,并获取用户是否运行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;

    }
});

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您应该移动代码以在

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

btw我不确定你提供的代码是否会编译:)