Android boolean如果没有条件不起作用

时间:2012-05-06 09:02:27

标签: android

我检查了一个布尔值if if(!updating_questions)在我的意图服务中不能用于以下方法

private void sendBroadcast(Context context, String key, String value){
    //Don't broadcast if updating questions
    Util.log_debug_message("@@@@ Updating questions - " + updating_questions);
    if(!updating_questions){
        Util.log_debug_message("@@@@ Broadcasting, updating_questions = " + updating_questions);
        Broadcast.sendBroadcast(context, ResponseReceiver.ACTION_RESP, Intent.CATEGORY_DEFAULT,
                key, value);
    }
}

updates_questions标志是一个全局私有变量,它的值为false

private boolean updating_questions = false;

该值是从onHandleIntent(Intent intent)方法中的额外值设置的

    updating_questions = intent.getBooleanExtra(AppConstants.C2DM_MESSAGE_UPDATE_QUESTIONS, false);

使用

设置值
    if(updating_questions){
        refreshService.putExtra(AppConstants.C2DM_MESSAGE_UPDATE_QUESTIONS, true);
    } else {
        refreshService.putExtra(AppConstants.C2DM_MESSAGE_UPDATE_QUESTIONS, false);
    }

这项检查似乎表现得恰到好处 并且控制台中的输出显示该值为false,但条件正在被视为是真的

D/QuizApp (  878): @@@@ Updating questions - false
D/QuizApp (  878): @@@@ Broadcasting, updating_questions = false

因此,如果值为false,那么如何广播该消息呢? 我显然错过了一些非常基本的东西但却不知道它是什么

1 个答案:

答案 0 :(得分:3)

您的if条件是:

!updating_questions

这意味着,如果updating_questions true执行此阻止(请参阅!运算符)。