|
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 5
|
|
Не работает AlarmManager11.11.2017, 18:42. Показов 3085. Ответов 3
Хочу выводить уведомление "через заданное время". Использую AlarmManager, в PendingIntent кладу BroadcastReceiver, в котором уже вызываю уведомление. Проблема: оно не срабатывает, если я закрываю приложение не через аппаратную кнопку "домик", а захожу через аппаратную кнопку недавних приложений в список этих самых приложений - и убираю оттуда своё.
Немножко оффтопик: Что пробовал:
Топик: Нашёл на github простую рабочую реализацию AlarmManager'a (в 40 строк вся максимум), вот ссылка на неё. В этой самой реализации не нашёл ничего необычного: два обычных класса с двумя обычными методами. Но оно работает :D Добавляет огонька то, что если я создам новый проект, создам в нём ТАКИЕ ЖЕ два класса, такой же манифест, то работать снова не будет. Вопрос: а) что не так в моей реализации (с копированием тех же файлов)? Возможно, я забываю прописать какие-то permissions, dependencies, gradle properties, ...? б) если кому-то знакома описанная проблема в целом, то какие есть способы борьбы с ней? P.S.: прошу прощения за "домик" и т.п. :) P.P.S.: наверное, вопрос тупой, но я уже в отчаянии)
0
|
|
| 11.11.2017, 18:42 | |
|
Ответы с готовыми решениями:
3
Не работает AlarmManager AlarmManager работает ли? Состояние AlarmManager работает с задержкой во времени |
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
|
| 12.11.2017, 07:40 | |
|
Nickomed, у вас постоянно висящий сервис? Нет / убит - нет уведомления
0
|
|
|
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 5
|
|||||||||||
| 12.11.2017, 10:38 [ТС] | |||||||||||
|
vxg, спасибо за ответ!
Нет, сервис у меня не постоянно висящий, попробую переписать так. Дело в том, что я в принципе не пишу собственный класс - и не наследуюсь от Service. Есть ли какой-то вариант сделать его постоянно висящим в следующей реализации? MainActivity.class В моём случае этот код вызывается, по сути, в onPause, но если его переписать в "более привычное" место (например, запускать просто по нажатию кнопки), поведение не меняется.
Я бы согласился с Вами, что лучше просто написать свой сервис - и сделать его sticky (вы же про это?), но у господина с гитхаба, про которого я писал, реализация, насколько мне понятно, такая же. С тем лишь отличием, что она рабочая ![]() Добавлено через 2 часа 0 минут UPD: Проблема решена. Заработало то, что никак не должно было..) Создал новый проект, скопировал туда все классы и ресурсы старого, переписал ручками манифест, все gradle-файлы, которые отображаются в студии, одинаковы в обоих проектах. Отличается только имя основного пакета и applicationId в build.gradle. Вроде бы ничего не должно поменяться, ан нет, всё как надо. Магия? Для меня магия. Если интересно, реализация в целом та же, что выше. Если кто знает, буду искренне рад прочитать, почему это могло произойти. Но в принципе тема теряет свою актуальность. Всем обратившим внимание спасибо
0
|
|||||||||||
|
Модератор
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
|
||||||
| 12.11.2017, 10:53 | ||||||
|
Nickomed, могу только попробовать вырвать кусок из своего проекта (правда у меня там все же есть сервис)
0
|
||||||
| 12.11.2017, 10:53 | |
|
Помогаю со студенческими работами здесь
4
AlarmManager не работает после закрытия приложения
AlarmManager
AlarmManager.setWindow Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|