Android布尔值,如果条件不工作
如果(!updateing_questions)在以下方法中的my intent服务中不起作用,我将检查布尔值Android布尔值,如果条件不工作,android,Android,如果(!updateing_questions)在以下方法中的my intent服务中不起作用,我将检查布尔值 private void sendBroadcast(Context context, String key, String value){ //Don't broadcast if updating questions Util.log_debug_message("@@@@ Updating questions - " + 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);
}
}
更新_questions标志是一个全局私有变量,其值为false
private boolean updating_questions = false;
该值是通过onHandleIntent(意图)方法中的额外值设置的
该值是使用
if(updating_questions){
refreshService.putExtra(AppConstants.C2DM_MESSAGE_UPDATE_QUESTIONS, true);
} else {
refreshService.putExtra(AppConstants.C2DM_MESSAGE_UPDATE_QUESTIONS, false);
}
这张支票似乎运行正常
控制台中的输出显示值为false,但条件被视为true
D/QuizApp ( 878): @@@@ Updating questions - false
D/QuizApp ( 878): @@@@ Broadcasting, updating_questions = false
那么,如果该值为false,如何才能广播该消息?
很明显,我遗漏了一些非常基本的东西,但我不知道它是什么,如果你的
条件是:
!updating_questions
这意味着,如果更新\u问题不是则执行此块操作(请参阅!
运算符)。如果条件为:
!updating_questions
这意味着,如果更新问题不是则执行此阻止操作(请参阅!
运算符)。感谢您的回复,那么如何防止在更新问题为false时调用此阻止?@jamesw删除代码>来自if
条件:if(更新问题){/…
@jamesw呃…如果值为真,您希望它执行,但您不希望执行?快速跟进。我的条件是正确的,只是值在本应设置为真时被设置为假。需要更多咖啡!作为良好的实践,并且作为保持理智的一种帮助,避免“负面逻辑检查”尽可能。对代码的运行方式没有影响,但对读取、理解和维护有很大影响。if(condition){}比if(!condition){}好得多。以“not”开头的布尔字段名,例如notUpdated,是负面逻辑“代码气味”的赠品。感谢您的回复,那么如何防止在更新问题为false时调用块?@jamesw从if
条件中删除!
:if(更新问题){/…
@jamesw呃…如果值为真,您希望它执行,但您不希望执行?快速跟进。我的条件是正确的,只是值在本应设置为真时被设置为假。需要更多咖啡!作为良好的实践,并且作为保持理智的一种帮助,避免“负面逻辑检查”尽可能。对代码的运行方式没有影响,但对读取、理解和维护有很大影响。if(condition){}比if(!condition){}好得多。以“not”开头的布尔字段名,例如notUpdated,是负面逻辑“代码气味”的赠品。该set语句是冗余的;只需将app常量设置为更新_问题的值。该set语句是冗余的;只需将app常量设置为更新_问题的值。