У меня был похожий вопрос, но ответ не полностью решил мою проблему.
Вот что я пытаюсь сделать: у меня есть класс Service, который зацикливается на получение TCP-соединений. Если соединение получено, можно прочитать строку. Это может быть один из двух: «START» или «STOP».
Когда появляется «START», я создаю (запускаю) новое действие с некоторым GUI, а также двумя потоками (один отправляет пакеты UDP и записывает аудио, другой получает UDP и воспроизводит аудио). Этот класс содержит 2 сокета, один объект AudioTrack и один AudioRecord.
Когда класс Service получает «STOP» в качестве своих данных в TCP-соединении, я хотел бы вызвать метод внутри этого класса Activity (не создавать новый), закрыть эти 2 сокета и вызвать stop () и release () для объекта AudioTrack / AudioRecord.
Прямо сейчас, когда я получаю «СТОП», я могу создать только новое действие, поэтому эти объекты не инициализируются. Есть ли способ, пожалуйста, на самом деле вызвать метод внутри ранее запущенной деятельности? Могу ли я сохранить ссылку на это действие (или намерение) и просто вызвать метод о нем, или мне нужно изменить весь мой дизайн? Предложения будут приветствоваться в этом случае.
Спасибо,
Джеймс