Android и Eclipse.Должен ли я включить сервисный код в мое приложение?Несколько приложений используют один и тот же сервис - PullRequest
3 голосов
/ 03 января 2012

Я относительный новичок в программировании на Android и уже задавал некоторые основные вопросы об услугах (http://stackoverflow.com/questions/8659622/separation-of-logic-and-gui-in-android-app-service-has-knowledge-of-app-and-sho)

Это похоже на отдельный вопрос, поэтому я его оборвал.

Я унаследовал некоторый код, написанный на Eclipse, состоящий из службы и приложения. Я поместил код службы в библиотеку. В настройках приложения под Android я добавил библиотеку службы в разделе «Библиотека», чтобы иметь возможность ссылаться на код.не уверен, что это правильный путь. Я также сделал это в новом приложении, которое я создал. Однако я думаю, что у меня возникают проблемы при попытке запустить оба приложения (которые должны использовать один и тот же сервис), и я не слишком удивленЯ загружаю и отлаживаю первое приложение, и оно работает нормально. Служба устанавливает соединение с внешним устройством через Bluetooth. Когда я загружаю и отлаживаю второе приложение, я замечаю, что первое приложение теряет соединение. Я предполагаю, чтоАкт загрузки второго приложения также загружает новую копию сервиса. Мои конкретные вопросы:

  1. Могут ли два приложения совместно использовать один и тот же экземпляр службы?
  2. Должен ли я поместить службу в библиотеку и ссылаться на службу в обоих приложениях, или есть другой (лучший) способ?Как бы я сослался на стороннюю службу, если бы у меня не было исходного кода?

  3. Все примеры, на которые я смотрел, похоже, имеют службу и активность в одном и том же проекте.Может кто-нибудь указать мне пример большего размера, например, сервис с двумя приложениями, которые его используют?

Спасибо, Дейв

1 Ответ

1 голос
/ 03 января 2012

Существует два вида услуг: Связанный сервис и Запущенный сервис.Запущенный сервис используется, когда вам нужно выполнить какое-то задание в фоновом режиме (например, если вам нужно скачать файл, вы просто запускаете сервис и скачиваете этот файл. После этого сервис останавливается сам или пользователь может отменить его отправкукоманда stopService к нему).Связанные сервисы используются для длительных задач.Его можно рассматривать как интернет-сервис, который обеспечивает некоторую функциональность и работает почти все время.Например, вы можете создать сервис, который предоставит вам функциональность для добавления двух чисел.

Теперь ответы:

  1. Да, они могут.По сути, в системе должен быть только один экземпляр службы.Но этот сервис может иметь несколько потоков.
  2. Вы можете реализовать свой сервис как отдельное приложение.Но обычно есть приложение владельца и приложение, которое использует службу.
  3. Вам следует взглянуть на связанные службы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...