У меня есть школьное задание о создании клиента чата на основе UDP на Android. Теперь, моя первая идея состояла в том, чтобы сделать активность, которая запускает сервис, и служба обрабатывает всю сеть и активность, все входные данные выводят. Но проблема нашла.UDP-чат на android
Если я попытаюсь запустить службу, чтобы запустить startCommand и вызывает socket.receive, чтобы начать получать сетевое сообщение, я не могу привязать эту услугу, чтобы я мог передавать входные данные из активности в службу (input = сообщения, которые пользователь хочет отправить). Он просто зависает и генерируется исключение ANR. Если я только привязываю его (так что прием никогда не вызывается), он работает как заклинание.
Возможно, я не подхожу к этой проблеме правильно. Или он должен работать, чтобы связать службу с ней, на блокирующий прием?
Не видя кода, его трудно диагностировать. Мое первое предположение заключалось в том, что вы запускаете свои сетевые функции в потоке службы (которая является основным потоком пользовательского интерфейса). Это блокирует его, и вы получаете ANR. Вы всегда должны запускать сетевые вызовы в отдельном потоке. –