Страница 1 из 1

аспекты выживания служб в Android?

Добавлено: 04 апр 2016, 12:10
postflow
Вот тут https://habrahabr.ru/post/265159/парень очень хорошо раскрывает аспекты выживания служб в Android.

Суть статьи:
Если юзер смахивает приложение из списка, то это приводит к закрытию сервиса пораженного этой activity. Как выход - предлагают использовать "режим" Foreground. Как известно это порождает Notification в статус баре.

Мне сразу вспомнилось приложение cloud.mail.ru. Я им пользуюсь больше года. Удаление activiti из списка запущенных, никогда не влекло остановку службы. Ни разу не приходилось её перезапускать. И неубиваемый "Notification" в баре не висит.

Каким образом разработчики mail.ru обходят эту проблему в своем приложении cloud.mail.ru (https://play.google.com/store/apps/deta ... loud&hl=ru)

p/s пишу здесь, поскольку комментировать исходную статью возможности нет.

Re: аспекты выживания служб в Android?

Добавлено: 06 апр 2016, 14:59
Mikhail_dev
Скорее всего их сервис работает как отдельный процесс и поэтому не убивается, потому что не относится к UI процессу

Re: аспекты выживания служб в Android?

Добавлено: 07 апр 2016, 08:43
postflow
Mikhail_dev писал(а):Скорее всего их сервис работает как отдельный процесс и поэтому не убивается, потому что не относится к UI процессу
Получается такой проблемы, как "убивание" процесса после закрытия его activity - нет? Проблема надуманная. И все что требуется - запустить сервис как отдельный процесс? И видимо автор статьи на habr-е упустил из виду такое решение своей задачи?

Верно?

Тогда ребром встает вопрос(для меня), как же запустить сервис в отдельном процессе. Буду признателен, если укажите пару ключевых слова для поиска. Дальше я найду сам...

Re: аспекты выживания служб в Android?

Добавлено: 07 апр 2016, 12:30
klblk
В манифесте у сервиса прописать: android:process=":service" (вместо service можно написать любое имя, оно будет отображаться в списке процессов: my.package:service).
И в этом случае усложняется взаимодействие с ui.

Re: аспекты выживания служб в Android?

Добавлено: 07 апр 2016, 14:29
Mikhail_dev
Любой процесс это по сути урезанная копия виртуальной машины, со своим хипом. Т.е. у вас будет разная область памяти. Ваш синглтон к примеру будет представляться разным объектом в том и другом процессе. 10 раз подумайте, чтобы так использовать процесс