Я разрабатываю приложение, которое использует собственный сетевой протокол по TCP. Несколько задач в приложении используют разные действия, однако для каждого действия требуется включение сети (поскольку каждое действие должно отправлять / получать некоторые пользовательские пакеты по сети).
Так что моя идея в основном заключается в
При запуске приложения - создайте сервис для управления сетью (где-то я читал, что мне нужно создать сеть в другом потоке в этом сервисе, чтобы предотвратить ANR)
Когда запускается новое действие, оно связывается с этим сервисом. В течение этого времени он отправляет / получает данные от службы. Когда действие заканчивается, оно освобождается от услуги.
Я хотел бы знать, имеет ли это смысл.
Кроме того, я понимаю, что могу отправлять данные в службу (для отправки по сети) с помощью интерфейса aidl, но как я получу данные из службы? Похоже, что опрос через помощь - единственный способ, которым я могу придумать, что означает, что мне понадобится еще одна нить в каждой из моих операций, чтобы предотвратить ANR. Конечно, есть и лучший способ.
Я ценю вашу помощь и открыта для предложений.