Android 警报没有重复

Android 警报没有重复,android,alarmmanager,repeatingalarm,Android,Alarmmanager,Repeatingalarm,这是我触发警报的代码 public void startAlarmp(){ int hour=10; int minute=30; Intent alarmIntent2 = new Intent(getApplicationContext(), AlarmReceiver.class); pendingIntentp = PendingIntent.getBroadcast(getApplicationContext(), 234324243, alarmI

这是我触发警报的代码

public void startAlarmp(){

    int hour=10;
    int minute=30;

    Intent alarmIntent2 = new Intent(getApplicationContext(), AlarmReceiver.class);
    pendingIntentp = PendingIntent.getBroadcast(getApplicationContext(), 234324243, alarmIntent2, 0);
    alertmanagerp = (AlarmManager)getSystemService(ALARM_SERVICE);
    alertmanagerp.setRepeating(AlarmManager.RTC_WAKEUP,c1.getTimeInMillis(),24*60*60*1000,pendingIntentp);
}
下面是我的AlarmReceiver.java代码

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    //my stuff
}
它只会在第一次触发 之后就不再重复了

D/ActivityThread: setTargetHeapUtilization:0.25
D/ActivityThread: setTargetHeapIdealFree:8388608
D/ActivityThread: setTargetHeapConcurrentStart:2097152
重复时出现以下错误

D/ActivityThread: setTargetHeapUtilization:0.25
D/ActivityThread: setTargetHeapIdealFree:8388608
D/ActivityThread: setTargetHeapConcurrentStart:2097152

您正在将挂起意图的标志设置为0。尝试将其更改为
标志\u更新\u当前

pendingIntentp = PendingIntent.getBroadcast(getApplicationContext(), 234324243, alarmIntent2, PendingIntent.FLAG_UPDATE_CURRENT);
编辑。 试试这个:

public void startAlarmp(){

    int hour=10;
    int minute=30;

    Intent alarmIntent2 = new Intent(YourActivity.this, AlarmReceiver.class);
    pendingIntentp = PendingIntent.getBroadcast(YourActivity.this, 0, alarmIntent2, 0);
    alertmanagerp = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alertmanagerp.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2*60*1000,pendingIntentp);
}

您正在将挂起意图的标志设置为0。尝试将其更改为
标志\u更新\u当前

pendingIntentp = PendingIntent.getBroadcast(getApplicationContext(), 234324243, alarmIntent2, PendingIntent.FLAG_UPDATE_CURRENT);
编辑。 试试这个:

public void startAlarmp(){

    int hour=10;
    int minute=30;

    Intent alarmIntent2 = new Intent(YourActivity.this, AlarmReceiver.class);
    pendingIntentp = PendingIntent.getBroadcast(YourActivity.this, 0, alarmIntent2, 0);
    alertmanagerp = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alertmanagerp.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2*60*1000,pendingIntentp);
}

您是否减少了测试的
间隔millis
(24*60*60*1000),对吗?我对您的代码做了一些修改,请检查一下。如果进展顺利,那么你应该一步一步地修改你的需要。你使用的是哪种API级别?你能发布你的整个广播接收器吗?实际上代码大约是300行,我对这些行进行了注释,简单地放上TOAST消息,它就可以正常工作了。你是否减少了测试的
intervalMillis
(24*60*60*1000),对吧?我对你的代码做了一点修改,请检查一下。如果进展顺利,那么你应该一步一步地修改你的需要。使用哪种API级别?你能发布你的整个广播接收器吗?实际上代码大约是300行,我对这些行进行了注释,简单地放上TOAST消息,它工作正常。请发布logcat错误的完整输出。请发布logcat错误的完整输出。