0

我通过以下方法检查了在我的意图服务中不起作用的布尔值 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);
    }
}

update_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);
    }

此检查似乎正常运行,控制台中的输出显示该值为假,但条件被视为真

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

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

4

1 回答 1

3

你的if条件是:

!updating_questions

这意味着如果不是,则执行此块(请参阅运算符)。updating_questions true!

于 2012-05-06T09:05:02.613 回答