Android AlarmManager.SetExact () не стрельбаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android AlarmManager.SetExact () не стрельба

Сообщение Anonymous »

У меня проблемы с использованием сигнализации, чтобы запустить ожидающие намерения в будущем. Я был в этом часами и не понимаю, что я делаю не так. Любая помощь будет высоко оценена._context.startService(notificationIntent);
< /code>
Это работает, отправляя трансляцию за ~ 30 секунд: < /p>
if (mgr != null)
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 30000, AlarmManager.INTERVAL_DAY * 7, pendingNotificationIntent);
< /code>
Это работает, отправляя трансляцию за ~ 30 секунд: < /p>
if (mgr != null)
mgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 30000, AlarmManager.INTERVAL_DAY * 7, pendingNotificationIntent);
< /code>
Но по какой -то неизвестной причине это не удалось. Трансляция никогда не запускается. Когда я беру System.currentTimeMillis () и вычитаю его из своего триггера ... это показывает, что триггер действительно в будущем: < /p>
if (mgr != null)
mgr.setExact(AlarmManager.RTC_WAKEUP, trigger, pendingNotificationIntent);
< /code>
Я печатаю свою переменную «триггер» (тип Long) в консоли, и это определенно достоверное время (согласно EpochConverter.com). Значение, которое он печатает в настоящее время (только для справки), составляет 1521144300000, которое прошло несколько минут назад .. никогда не запуская мою тревогу; < /p>
Вот большая часть настройки: < /p>
Intent notificationIntent = new Intent(_context, com.example.example.NotificationReceiver.class)
.setAction(ACTION_SHOW_NOTIFICATION)
.putExtra(EXTRA_NOTIFICATION_TITLE, _title)
.putExtra(EXTRA_NOTIFICATION_BODY, newBody)
.putExtra(EXTRA_NOTIFICATION_TRIGGER_TIME, trigger);

AlarmManager mgr = (AlarmManager) _context.getSystemService(Context.ALARM_SERVICE);

PendingIntent pendingNotificationIntent = PendingIntent.getBroadcast(_context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

Log.d(TAG, "trigger time: " + trigger);

if (mgr != null) mgr.setExact(AlarmManager.RTC_WAKEUP, trigger, pendingNotificationIntent);
< /code>
Я получаю время триггера от задней части, которое выглядит правильным в каждом ответе.if (mgr != null) mgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, trigger, AlarmManager.INTERVAL_DAY * 7, pendingNotificationIntent);


Подробнее здесь: https://stackoverflow.com/questions/493 ... not-firing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»