Диспетчер аварийных сигналов не вызывается правильно

Я вызываю 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);
    }
}

У меня есть печать объекта календаря. Данные в этом объекте верны.

Но это событие вещания срабатывает во время создания будильника, а не во время установки будильника.

Я пролистал некоторые ссылки, которые говорят о точности тревоги или тревоги, не вызывая своевременно или exact/Inexact, Но ни один из этих способов не подходит здесь, потому что он вызывается во время установки будильника.

В чем может быть причина?

0 ответов

Другие вопросы по тегам