Android 为什么重复报警不起作用?

Android 为什么重复报警不起作用?,android,Android,我创建了一个日历对象,代码如下: Intent intent=new Intent(ListDemoActivity.this, Demo1.class); PendingIntent pi =PendingIntent.getBroadcast(ListDemoActivity.this, 0, intent,0); AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); Calendar calendar = Cale

我创建了一个日历对象,代码如下:

Intent intent=new Intent(ListDemoActivity.this, Demo1.class);
PendingIntent pi =PendingIntent.getBroadcast(ListDemoActivity.this, 0, intent,0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,8);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,2);
Log.d("Test", "Current time: " + System.currentTimeMillis() );
Log.d("Test", "Calendar time: " + calendar.getTimeInMillis() );
//calendar.add(Calendar.SECOND,8);
am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),10*1000,pi); 
我第一次尝试每10秒触发一次警报,但警报只触发了一次。 我还打印了当前时间和添加后的新时间,但当前时间大于新时间

12-12 12:57:29.506: D/Test(783): Current time: 1323674849507
12-12 12:57:29.506: D/Test(783): Calendar time: 1323657002506

为什么代码不工作?

您需要在PendingEvent对象创建时设置标志

PendingIntent pi =PendingIntent.getBroadcast(ListDemoActivity.this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);

如果您使用广播接收器捕获挂起的意图,请确保您已在清单中添加了此行

   <receiver android:name="com.example.YourReceiver" android:enabled="true"  android:process=":remote"></receiver>

嘿,我得到了解决方案,实际上我在活动中实现了该代码,所以它不起作用。
我在服务班上试过了,现在可以用了

我也试过了,但还是只触发了一次警报。在这里,我尝试每2秒重复一次报警。但不起作用。您是否更改日历时间?我只想每10秒重复一次报警。现在,我刚刚创建了日历对象并使用calendar.add(calendar.SECOND,10);PendingEvent pi=PendingEvent.getService(ListDemoActivity.this,0,intent,PendingEvent.FLAG_UPDATE_CURRENT);am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),10*1000,pi);但警报仍然只触发一次。为什么会发生这种情况?或者我的代码中有错误。请帮助我。请尝试使用当前时间并检查它是否会重复警报