我的PendingIntent正在研究时间广播接收器。问题是当我设置时间并发送第一个数据时它成功运行但是当我发送其他数据时它再次显示第一个数据而不是新数据,下面是我的代码。 我的所有 mServiceIntenyt 代码都很完美,但错误是什么
mServiceIntent.putExtra("unique",lackmyData);
PendingIntent pintent = PendingIntent.getService(MessageActivity.this, 0, mServiceIntent, 0);
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP,targetCal.getTimeInMillis(), pintent);
答案 0 :(得分:0)
如果您没有传递任何标志,则PendingIntent
会在比较Intent
时忽略其他内容的更改,从而导致再次使用相同的旧Intent。您需要让PendingIntent更新Intent,如下所示:
PendingIntent pintent = PendingIntent.getService(MessageActivity.this,
0, mServiceIntent, PendingIntent.FLAG_UPDATE_CURRENT);
或者为了确保你的意图是基于额外的unqiue,你可以使用如下的setData:
mServiceIntent.setData(Uri.parse(mServiceIntent.toUri(Intent.URI_INTENT_SCHEME)));