当我按下按钮时,它调用一个获取用户输入并将其设置为变量的方法,然后将该变量放入一个额外的意图并发送到广播接收器,广播接收器根据该值决定做什么。它只在第一次工作,在所有下一次按下时,无论变量值是否改变,额外的值都不会改变。它永远保持第一次按下时设置的值。如何用新值重写意图?
我如何设置额外的:
Intent intentForReceiver = new Intent(this, AlarmReceiver.class);
intentForReceiver.putExtra("checkBox1", checkBox1.isChecked());
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0,
intentForReceiver, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
我如何在 BroadcastReceiver 上接收额外内容并将其用于服务意图:
Intent intentForService = new Intent(context, CMService.class);
intent.putExtra("checkBox1", intentForReceiver.getExtras().getBoolean("checkBox1"));
context.startService(intentForService);
我如何获得额外的服务:
if(intentForService.getExtras().getBoolean("checkBox1")) {
...
} else {
...
}
所以这是我的代码。如果我取消选中 checkBox1 并按下按钮,它仍然会执行仅当 checkBox1.isChecked() 为真时才应完成的工作,因此这意味着该值在第一次按下后永远保持为真,并且在我取消选中时不会更新复选框1。