Закрытие службы с активными потоками - PullRequest
0 голосов
/ 10 февраля 2010

Когда я загружаю свое приложение, я также загружаю и Службу Android, которая помогает мне загружать файлы из Интернета.

Пользователь может иметь 1 или более загрузок в любой момент времени, все в своей собственной теме, которая управляется службой.

Если пользователь нажимает кнопку «Домой», я не уничтожаю службу, а вместо этого запускаю ее, однако, если пользователь нажимает кнопку «Назад», я останавливаю () службу, так как я считаю, что это было правильно ( пользователь не хотел бы, чтобы запущенные службы работали.

Это работает нормально, если нет случайных потоков, которые еще не завершены (это может произойти, если интернет-соединение не активно и т. Д.).

Как я мог справиться с этим? Как я могу остановить все Потоки, так как у меня нет на них ссылок ... или как-то дать команду android остановить мой сервис, когда все Потоки завершены и мое приложение закрыто?

1 Ответ

1 голос
/ 10 февраля 2010

Не разветвлять темы за загрузку. Размещать задания в очереди работ (например, LinkedBlockingQueue) и работать с пулом потоков. Сделайте эту очередь приоритетной, и вы можете организовать размещение заданий в этой очереди, чтобы фоновые потоки остановились после завершения текущей загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...