Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将PendingEvent中的值发送到广播_Android_Android Pendingintent - Fatal编程技术网

Android 如何将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

我尝试将PendingEvent中的值发送到广播,但我不能。这是我的代码:

  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);