Попросите alarmManager не отображать время и значок будильника на экране и сверху

1

Я хочу вызвать приемник точно в срок, поэтому я использую будильник, чтобы установить его, используя следующий код. Все работает, кроме моего экрана и в верхней части экрана я вижу значок будильника и время. Подобно тому, что вы видите, когда вы устанавливаете будильник с помощью приложения будильника в Android. Я не хочу видеть это. Как я могу это сделать?

private static void updateNextAlarmInAlarmManager(Context context, long nextAlarmTime) {
        // Sets a surrogate alarm with alarm manager that provides the AlarmClockInfo for the
        // alarm that is going to fire next. The operation is constructed such that it is ignored
        // by AlarmStateManager.

        final AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);

        final int flags = 0;
        final PendingIntent operation = PendingIntent.getBroadcast(context, 0 /* requestCode */,
                createIndicatorIntent(context), flags);

        final AlarmManager.AlarmClockInfo info = new AlarmManager.AlarmClockInfo(nextAlarmTime, getPendingIntentForApp(context, nextAlarmTime));
        alarmManager.setAlarmClock(info, operation);
    }

Перед перемещением setAlarmClock я использовал setExactAndAllowWhileIdle, но setExactAndAllowWhileIdle гарантирует, что он доставит событие точно в срок. Но на экране не отображается значок будильника, чего я и хочу.

Теги:
alarmmanager

1 ответ

2
Лучший ответ

Как я могу это сделать?

Не используйте setAlarmClock(). Как указано в документации, "система, как правило, также использует информацию, предоставленную здесь, чтобы сообщить пользователю об этой предстоящей тревоге, если это необходимо".

  • 0
    Но другого варианта нет, так как setExactAndAllowWhileIdle не является надежным. Вы знаете какой-нибудь другой подход?
  • 0
    @ user93796: Не совсем. В течение последних нескольких лет я рекомендовал разработчикам не пытаться создавать приложения, основанные на фоновой работе, особенно те, для которых важно время.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню