【问题标题】:Alarm is not repeating闹钟不重复
【发布时间】:2015-12-28 08:34:17
【问题描述】:

这是我触发警报的代码

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

【问题讨论】:

  • 请发布 logcat 错误的完整输出。

标签: android alarmmanager repeatingalarm


【解决方案1】:

您正在将待处理 Intent 的标志设置为 0。尝试将其更改为 FLAG_UPDATE_CURRENT

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

【讨论】:

  • 你是不是把intervalMillis(24*60*60*1000)减少了测试用的吧?
  • 我稍微修改了你的代码,请检查一下。如果顺利,那么你应该逐步修改你的需求。
  • 正在使用哪个 API 级别?
  • 你能发布你的整个广播接收器吗?
  • 实际上代码大约是 300 行,我评论了这些行并简单地输入 TOAST 消息,它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多