У меня проблемы с использованием сигнализации, чтобы запустить ожидающие намерения в будущем. Я был в этом часами и не понимаю, что я делаю не так. Любая помощь будет высоко оценена._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
Android AlarmManager.SetExact () не стрельба ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1759788910
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);
Подробнее здесь: [url]https://stackoverflow.com/questions/49308474/android-alarmmanager-setexact-not-firing[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия