Будильник Android, установленный с помощью диспетчера будильников, уничтожается при удалении приложения на некоторых устройствах (Le2)

Я разрабатываю приложение для Android, которое использует метод setrepeating диспетчера аварийных сигналов для установки повторных сигналов тревоги, а затем показывает уведомления при получении получателя, когда срабатывает сигнал тревоги. Но есть проблема.
Когда я смахиваю приложение с таких устройств, как Samsung Galaxy, он работает хорошо и уведомляет через будильник, но в Le2 будильник уничтожается, и, следовательно, уведомление не отображается. Даже если я снова открою приложение, старый набор будильника будет потерян. Я прошел много ответов, но они только говорят о проблема с устройством (Le2), которая принудительно останавливает приложение при пролистывании. Ни один из ответов не дал хорошего решения.


person Vignesh R    schedule 26.04.2017    source источник
comment
Вы должны сохранить свой будильник в базе данных, когда устройство выключено ... и снова следует установить будильник по значениям базы данных ............ Или это может быть проблема производителей устройств, когда приложение отключено   -  person Ko Vartthan    schedule 26.04.2017
comment
Это может быть связано с устройством. Если устройству не хватает памяти для выполнения основных задач операционной системой, оно останавливает другие задачи, потребляющие память.   -  person Abdul Kawee    schedule 26.04.2017
comment
Да, это проблема устройства, так как большинство китайских поставщиков пытаются оптимизировать батарею и делают такие глупые вещи, как принудительная остановка при пролистывании последних приложений. Есть ли способ преодолеть это? @KoVartthan Это кажется хорошим вариантом, но есть ли лучший способ, например, использование сервисов?   -  person Vignesh R    schedule 26.04.2017
comment
1. Сохраните все ваши будильники в БД 2. Когда будильник завершится, удалите из БД 3. Когда вы проведете пальцем по приложению, будильник сбрасывается, поэтому при запуске приложения снова установите будильник, извлекая значения из БД .... .... это может помочь вам......... поиграйте с методами активности жизненного цикла в Android.....   -  person Ko Vartthan    schedule 26.04.2017
comment
см. раздел о менеджерах сигналов тревоги для спящего режима....разработчик .android.com/training/monitoring-device-state/   -  person Opiatefuchs    schedule 26.04.2017
comment
@Opiatefuchs, если на устройстве отключен режим ожидания, будильник будет работать в фоновом режиме?   -  person Ko Vartthan    schedule 26.04.2017
comment
@Ko .... обычно я бы сказал да, но по моему опыту режим ожидания непредсказуем, а также зависит от устройства, как он реализован. Некоторые устройства переходят в спящий режим, как только экран гаснет, некоторым требуется некоторое время. Я провел много экспериментов со многими устройствами и обнаружил, что они не следуют строгим правилам, как следовало бы. Так что нельзя на 100% сказать, находится устройство в спящем режиме или нет.   -  person Opiatefuchs    schedule 26.04.2017
comment
Дополнительно: рядом с спящим режимом некоторые устройства имеют собственное управление энергопотреблением, которое работает дополнительно к спящему режиму, поэтому вы должны знать об обоих. Интеграция режима Doze была плохой идеей, он должен защитить устройство от потери энергии, но у пользователя нет возможности отключить его. И именно это делает дремлющий режим недружественным для пользователя и разработчика...   -  person Opiatefuchs    schedule 26.04.2017
comment
Эти функции доставляют разработчикам неприятности ...............Спасибо за информацию :) @Opiatefuchs   -  person Ko Vartthan    schedule 26.04.2017


Ответы (2)


Некоторые производители телефонов, например. XiaoMi и MeiZu запрещают запуск приложения в фоновом режиме, если это не разрешено пользователем.

Для XiaoMi пользователь может предоставить доступ к приложению, добавив его в список автозапуска. Если не ошибаюсь, у Le2 есть такая же функция в «Защите приложений» в приложении «Диспетчер телефона».

person Fernando Tan    schedule 26.04.2017
comment
Я так не думаю, потому что тревоги регистрируются в ОС. - person Muhammad Babar; 26.04.2017
comment
Я почти уверен, что XiaoMi по умолчанию отключает все фоновые службы и менеджеры тревог. Это разрешено только для определенных известных приложений, например. WhatsApp. Другие приложения требуют, чтобы пользователь явно добавил их в список автозапуска. Это что-то похожее в Le2, и должен быть какой-то способ включить это, например. Настройка защиты приложений. - person Fernando Tan; 26.04.2017
comment
Я видел такое поведение с фоновыми службами, но не уверен, что они также изменили поведение для сигналов тревоги. Потому что будильники могут работать, даже если приложение не запущено. - person Muhammad Babar; 26.04.2017
comment
Звучит интересно ........ точка зрения разработчика в порядке, но как обычные пользователи знают все это, если вещи @FernandoTan - person Ko Vartthan; 26.04.2017
comment
@ Мухаммед ... ну, Фернандо прав. Даже у Huawei есть эта штука, она называется TelephonyManager. Существуют параметры просмотра, в которых вы должны внести свое приложение в белый список (не только одно), если это не так, ваше приложение ничего не делает. Я не знаю, почему некоторые производители делают что-то подобное. В конце концов, пользователи обвиняют нас, разработчиков, потому что они думают, что это наша вина. - person Opiatefuchs; 26.04.2017

Понятно. В Leeco LE2 просто зайдите в настройки -> батарея -> управление энергосбережением -> защита приложений и отключите автоматическую очистку вашего приложения. Работает сейчас. Это потому, что производитель испортил много вещей, чтобы увеличить время автономной работы, и, следовательно, для разработчиков стало кошмаром найти решение.

person Vignesh R    schedule 06.06.2017
comment
Это может быть решением, но пока не для LeEco, stackoverflow.com/questions/38995469/ - person Ivor; 29.01.2018