警报管理器未正确调用

时间:2017-04-26 15:28:28

标签: android alarmmanager alarm android-alarms

我在内部调用服务的闹钟时调用Broadcast。

我使用以下代码从Alarm

调用数据AlarmManager
public void startAlert(Timestamp timestamp, int id) {
    Intent intent = new Intent(this, BroadCastMessage.class);
    Bundle bundle = new Bundle();
    bundle.putInt("id", id);
    intent.putExtras(bundle);

    PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(timestamp.getTime());

    if (android.os.Build.VERSION.SDK_INT >= 19) {
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
    } else {
        alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
    }
}

我有打印Calendar对象。此对象中的数据是正确的。

但是这个广播事件在我创建闹钟时被解雇,而不是我设置闹钟的时间

我已经浏览了一些链接,这些链接正在讨论警报或警报的准确性,而不是及时调用或exact/Inexact。但这些都不适合,因为它在设置闹钟时调用。

可能是什么原因?

0 个答案:

没有答案