我通过以下方法检查了在我的意图服务中不起作用的布尔值 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,那么如何广播消息呢?我显然错过了一些非常基本的东西,但不知道它是什么