我检查了一个布尔值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,那么如何广播该消息呢? 我显然错过了一些非常基本的东西但却不知道它是什么
答案 0 :(得分:3)
您的if
条件是:
!updating_questions
这意味着,如果updating_questions
不 true
,执行此阻止(请参阅!
运算符)。