Я довольно новичок в Android и java, так что терпите меня.
Я работаю над приложением, которое в основном является приложением VOIP. Конструкция довольно проста:
- Служба "Foreground": она обрабатывает аудио, связь и т. Д. c ...
- Несколько репозиториев, в которых хранятся данные (в основном они MutableLiveData)
- Несколько ViewModels, которые в основном действуют как посредники (ничего особенного там не делается)
- Действия, которые используют ViewModels для отображения данных и взаимодействия со службой.
Все нормально, но недавно меня уведомили, что я должен разрешить другим приложениям взаимодействовать со службой.
Я немного осмотрелся и мне кажется, что мне следует использовать AIDL интерфейс для достижения этого. Мне удалось - немного потеть - поставить интерфейс AIDL на место.
У меня довольно много данных и типов данных, и мне кажется, что это было бы очень утомительной работой, чтобы добавить геттер для всех данных и обратного вызова для каждого из них, чтобы я мог получать уведомления, если происходит изменение.
Итак, в основном у меня есть два вопроса:
- Как бы вы это сделали - какое было бы лучшее решение?
- Учитывая, что у меня довольно много времени и код, вложенный в мое слабое решение, какой будет наилучшим компромиссом, чтобы решение не было слишком уродливым, и реализация не заставила меня перехватить sh весь мой код?
Спасибо за ваше время и введите!
PS Мой minSdkVersion равен 22, и я кодирую с java.