Android: Как вы получаете действия, чтобы поговорить с услугой гладко - PullRequest
0 голосов
/ 06 февраля 2020

Я довольно новичок в Android и java, так что терпите меня.

Я работаю над приложением, которое в основном является приложением VOIP. Конструкция довольно проста:

  • Служба "Foreground": она обрабатывает аудио, связь и т. Д. c ...
  • Несколько репозиториев, в которых хранятся данные (в основном они MutableLiveData)
  • Несколько ViewModels, которые в основном действуют как посредники (ничего особенного там не делается)
  • Действия, которые используют ViewModels для отображения данных и взаимодействия со службой.

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

Я немного осмотрелся и мне кажется, что мне следует использовать AIDL интерфейс для достижения этого. Мне удалось - немного потеть - поставить интерфейс AIDL на место.

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

Итак, в основном у меня есть два вопроса:

  • Как бы вы это сделали - какое было бы лучшее решение?
  • Учитывая, что у меня довольно много времени и код, вложенный в мое слабое решение, какой будет наилучшим компромиссом, чтобы решение не было слишком уродливым, и реализация не заставила меня перехватить sh весь мой код?

Спасибо за ваше время и введите!

PS Мой minSdkVersion равен 22, и я кодирую с java.

...