Моя ситуация:
Я создал службу Android, которая запускается при запуске приложения.Служба состоит из простого потока, который ждет 5 секунд, пишет сообщение журнала и ждет снова.
После закрытия приложения (с помощью кнопки назад) Android решает перезапустить мой сервис, потому что я возвращаю START_STICKYв OnStartCommand.При отладке приложения я могу использовать DDMS, чтобы убить процесс.Android снова выбирает перезапустить сервис.Это ожидается в соответствии с руководством.
Я также установил диспетчер задач и использовал его для «уничтожения» экземпляра.Странно то, что теперь мой сервис больше не перезапускается.
Странно то, что в любом случае не вызывается код уничтожения моих классов.В моих ожидающих потоках не возникает никаких прерываний InterruptedException.Кажется, у моего приложения нет возможности узнать, что оно уничтожено.
Мой вопрос:
Как мне обойти это и ответить на запросы на удаление?Я уже заметил, что DVM не хватает sun.misc.Signal и sun.misc.SignalHandler для правильной обработки сигналов (если это даже используется убийцами задач).
Мне нужно знать, где находится мое приложениеуничтожен, поэтому я могу правильно закрыть дескрипторы файлов, соединения с базой данных и тому подобное.
Большое спасибо за любую помощь.