Когда и как остановить Услуги - PullRequest
0 голосов
/ 01 февраля 2012

Я ищу способ аккуратно завершить работу моих служб Android. Они должны бежать, пока есть хотя бы одно из моих занятий.

Есть ли способ получить событие, когда уничтожается все приложение, а не только одно действие? Таким образом было бы легко справиться с отключением сервисов. Но я не нашел таких намерений или событий.

Итак, я подумал о двух возможностях справиться с этим, но они кажутся мне немного странными:

  1. Написать сервис, который считает открытые и закрытые действия. Чтобы реализовать это, мне нужно было бы добавить вызовы уведомлений ActivityStarted и ActivityClosed в методах onPause и onCreate. Когда каждое действие приостанавливается или уничтожается, моя служба наблюдения останавливает запущенные службы и, в конечном итоге, сама.

  2. Используйте БД, чтобы записать счет действий при вызове onPause или onCreate. Первое действие, которое замечает на своем onPause, что нет никаких других действий, запускает процедуру завершения службы.

Что бы вы сделали?

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Расширьте класс Service и реализуйте ServiceConnected для ваших активностей. Затем свяжите и рассчитайте сервис OnBind () / Unbind ().

0 голосов
/ 01 февраля 2012

Когда вы «передаете» от одного Activity к другому, вам необходимо убедиться, что вы unbind() ваш Service от «старого» * ​​1004 * и bind() к вашему Service от "новый. Эта тема на SO имеет дело с чем-то похожим. Обратите особое внимание на ссылку в этом ответе, которая ссылается на раздел «Координация действий» в документации Android.

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