Android 如何将PendingEvent中的值发送到广播
我尝试将PendingEvent中的值发送到广播,但我不能。这是我的代码:Android 如何将PendingEvent中的值发送到广播,android,android-pendingintent,Android,Android Pendingintent,我尝试将PendingEvent中的值发送到广播,但我不能。这是我的代码: Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour()); calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute()); calendar.set(Calendar.D
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());
calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());
calendar.set(Calendar.DATE, alarmDatePicker.getDayOfMonth());
Intent myIntent = new Intent(Activity_Main.this, SampleBootReceiver.class);
myIntent.putExtra("ID", 1234);
pendingIntent = PendingIntent.getBroadcast(Activity_Main.this,0, myIntent, 0);
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 20000, pendingIntent);
这是我的广播:
public class SampleBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int i= intent.getExtras().getInt("ID");
Log.w("Sample",""+ i);
Intent a =new Intent(context,RSSPullService.class);
a.putExtra("ID",i);
context.startService(a);
}
}
我将
I
的值获取为0
。我不明白为什么。非常感谢。因为唯一改变意图的是附加功能。因此PendingEvent.getActivity(…)工厂方法只是将旧的意图重新用作优化
换一行,
pendingIntent = PendingIntent.getBroadcast(Activity_Main.this,0, myIntent, 0);
对,
请参阅参考。您是否在清单文件中添加了服务和接收者?实际上使用
pendingent.FLAG\u UPDATE\u CURRENT
是一个更好的选择,但两者都应该有效。是的,您是对的。他对已经存在的意图有异议。所以我想也许创造一个全新的意图会有所帮助。更新了我的答案。谢谢你的提示。非常感谢,它跑了
pendingIntent = PendingIntent.getBroadcast(Activity_Main.this,0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);