Служба Android работает в фоновом режиме и меняет логику службы через некоторый интерфейс, как это сделать? - PullRequest
0 голосов
/ 02 февраля 2012

Я новичок в разработке Android. Я создаю приложение для Android, в котором всегда работает фоновый сервис ..

Цель службы - отслеживать входящие смс-сообщения и выполнять обработку на основе фильтра сообщений

Однако пользователь также хотел бы изменить bahviour службы через некоторый пользовательский интерфейс / активность. Например, пользователь может изменить фильтр сообщений.

Так в таком случае мои Служба и Деятельность будут выполняться как один процесс или как отдельный процесс?

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

Второй вопрос: у apk всегда есть один процесс или несколько процессов ??

Спасибо,

Ответы [ 2 ]

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

По умолчанию все компоненты вашего приложения выполняются в одном и том же процессе, но можно организовать разные компоненты для запуска в разных процессах, используя атрибут android: process в манифесте xml.Я настоятельно рекомендую против этого делать то, что вы делаете.

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

Вы можете использовать класс IntentService , чтобы разрешить вашей деятельности публиковать намерения в вашей службе.Затем класс IntentService ставит Intent в очередь и обрабатывает их по одному в выделенном рабочем потоке, которым управляет IntentService.

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

Возможно, вы захотите взглянуть на Связанную службу На этой странице описано, как действие может обращаться к методам в работающей службе, в разделе «Расширение класса связывания»

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