2015-06-01 3 views
1

Я разрабатываю приложение для Android, которое использует USB в режиме хоста. Пока приложение работает и устройство подключено, мне нужно знать, что устройство отправляет на смартфон, в режиме реального времени.Android: Как управлять постоянной фоновой задачей?

Передача выполняется в режиме прерывания с использованием Android SDK.

На данный момент я делаю это с Сервис (который фактически запускает новый поток для выполнения цикла while), но я уверен, что есть лучший способ справиться с этим делом. Кроме того, использование службы затрудняет получение/отправку данных из другого класса.

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

Итак, мой вопрос: как управлять такой фоновой задачей?

При необходимости может быть предоставлен примерный код. Спасибо.

ответ

1

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

См. here для справки.