Мой AsyncTask запускается, даже если не выполнены условия оператора - PullRequest
0 голосов
/ 10 мая 2011

Я хочу отобразить диалоговое окно с предупреждением и получить от пользователя информацию о том, запускать ли 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 ]

2 голосов
/ 10 мая 2011

Я не знаю, имеет ли это какое-то значение, но логично было бы установить кнопку без использования метода setNegativeButton ().

1 голос
/ 10 мая 2011

Вы должны переместить код для запуска задачи внутри

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

Кстати, я не уверен, что код, который вы предоставили, когда-либо будет компилироваться:)

...