Мой приемник загрузится, когда устройство загрузится и запустит диспетчер аварийных сообщений, чтобы запланировать каждые 10 секунд для проверки моей другой службы. Теперь я задаюсь вопросом, будет ли аварийный приемник убит или прекратит прием трансляции, если память будет низкой. Мне нужно постоянно проверять, что моя другая служба по-прежнему доступна, а не быть убитой системой. Если мне служба была уничтожена или не перезапустится снова, приемник сигналов тревоги может запустить сервис автоматически).Android: Убит ли диспетчер аварийных сообщений, если приложение будет убито системой
ответ
Приемник широковещательной передачи (в частности, приемник сигналов тревоги) может быть убит системой в случаях «избыточного давления в памяти». То есть: это не произойдет в обычных ситуациях, но это произойдет .
Процесс Жизненный цикл
Процесс, который в настоящее время выполнения BroadcastReceiver (то есть, в настоящее время работает код в его OnReceive (контекст, Намерение метод)) считается переднего плана процесса и будет продолжал работать системы, за исключением случаев чрезвычайного давления памяти.
Есть ли хороший способ предотвратить это, потому что мне нужно прослушивать UDP-пакеты, чтобы постоянно проверять другие элементы управления устройства, например. пользователь коснется текстового поля редактирования, это отправит пакет данных на мое устройство, чтобы мое устройство могло реагировать и отображать клавиатуру. если AlarmReceiver получит уничтожение, тогда я не буду писать этот AlarmReceiver. – LittleFunny
Невозможно предотвратить это. Android решит, когда аварийный приемник может быть убит. Это не будет происходить регулярно, поэтому, возможно, кодирование Alarm Receiver по-прежнему стоит боли. – iguarna
Извините, не понимаю, последняя фраза coz english не был моим первым языком, «стоит боль», это значит, что все еще стоит того, чтобы это было? – LittleFunny
Если ваша служба возвращает «START_STICKY», она всегда будет работать в фоновом режиме, и если система остановит ваше приложение по соображениям памяти, служба будет запущена снова, когда память освободится. – Marat