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

发布于 2024-11-05 23:24:14 字数 1138 浏览 4 评论 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;

    }
});

I want to display an alert dialog and get the user input on whether or not to run the AsyncTask. However the AsyncTask runs anyway, even when I put it in an if statement. Does anyone know why this is happening? This is my code:

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;

    }
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云之铃。 2024-11-12 23:24:14

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

I don't know if it makes any difference but the logical thing would be to set the no-button using the method setNegativeButton().

恏ㄋ傷疤忘ㄋ疼 2024-11-12 23:24:14

您应该移动代码以在内部运行任务

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

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

You should move the code to run the task inside

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

btw I'm not sure that the code you provided will ever compile :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文