2010-08-18 2 views
2

У меня есть служба, которая запускается при загрузке на моем устройстве Android, служба запускается с использованием команды startService, поэтому она запускается отдельно от пользовательского интерфейса, я хотел бы получать уведомление когда служба будет убита из ОС или из диспетчера задач, чтобы я мог безопасно сохранять свои данные, я переопределяю метод onDestroy, но когда служба уничтожается диспетчером задач, код в методе onDestroy не выполняется!android как обращаться, когда служба убита ОС или taskmanager

Могу ли я получить уведомление, когда кто-то пытается убить мое обслуживание и как?

+0

У вас нет идеи? – maxsap

+0

@ Беньямин - пожалуйста, поймите, что тривиальные изменения древних и, по всей видимости, давно заброшенные вопросы служат малоцелесообразным, кроме как дать им необоснованный удар по вершине списка вопросов. –

ответ

1

Я думаю, что когда ваше приложение будет убито с помощью kill -9 с помощью диспетчера задач или системы, процесс dalvik полностью уничтожается без каких-либо методов, вызываемых на нем, точно так же, как если вы вызовете kill -9 в процессе unix, он будет убил немедленно, не имея возможности восстановиться.

Когда пользователь использует диспетчер задач, он должен это знать. Что касается убийства системой, я уверен, что если система не срочно нуждается в свободных ресурсах, она должна закончить ваш процесс изящно, а затем вы должны называть его onDestroy.

Действительно ли вы видели приложение, разрушенное системой (например, открыв почти все приложения на телефоне) без вызова onDestroy или только диспетчера задач?

+0

Спасибо за ответ, я проверил только диспетчер задач, потому что, как вы упомянули, когда os убивает это устройство, он сначала вызывает ondestroy, проблема также в том, что вы упомянули, что задача убита и вызов не вызван. – maxsap

Смежные вопросы