Отвечать на запросы уничтожения менеджерами задач - PullRequest
0 голосов
/ 25 мая 2011

Моя ситуация:
Я создал службу Android, которая запускается при запуске приложения.Служба состоит из простого потока, который ждет 5 секунд, пишет сообщение журнала и ждет снова.

После закрытия приложения (с помощью кнопки назад) Android решает перезапустить мой сервис, потому что я возвращаю START_STICKYв OnStartCommand.При отладке приложения я могу использовать DDMS, чтобы убить процесс.Android снова выбирает перезапустить сервис.Это ожидается в соответствии с руководством.

Я также установил диспетчер задач и использовал его для «уничтожения» экземпляра.Странно то, что теперь мой сервис больше не перезапускается.

Странно то, что в любом случае не вызывается код уничтожения моих классов.В моих ожидающих потоках не возникает никаких прерываний InterruptedException.Кажется, у моего приложения нет возможности узнать, что оно уничтожено.

Мой вопрос:
Как мне обойти это и ответить на запросы на удаление?Я уже заметил, что DVM не хватает sun.misc.Signal и sun.misc.SignalHandler для правильной обработки сигналов (если это даже используется убийцами задач).

Мне нужно знать, где находится мое приложениеуничтожен, поэтому я могу правильно закрыть дескрипторы файлов, соединения с базой данных и тому подобное.

Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 25 мая 2011

Как я могу обойти это и ответить на запросы на уничтожение?

Вы не делаете. OTOH, это поведение убийцы задач должно быть устранено в Android 2.2, так что в конечном итоге это не будет проблемой.

...