Я пытаюсь разрешить двум потокам в приложении Android общаться друг с другом. Простой, не так ли? У меня два потока:
В настоящий момент для того, чтобы Thread A отправил сообщения в Thread B, я использую класс со статическими данными экземпляра и статическими методами, которые могут быть установлены Thread A. Thread B использует цикл для проверки входящих данные по сокету, поэтому я использовал один и тот же цикл, чтобы проверить изменение этого дополнительного класса. То, как мне удалось отправить данные из Thread A в Thread B. Однако мне также хотелось бы, чтобы Thread B смог уведомить Thread A, основной поток пользовательского интерфейса, что сокет был закрыт, и действовать по этому поводу. К сожалению, хотя Thread A не использует никаких циклов для проверки чего-либо непрерывно. Итак, мой вопрос: как я могу известить Thread A об изменении Thread B? Я выполнил поиск и обнаружил, что шаблон Observer будет полезен, но я не уверен, что могу привести шаблон Observer в мою существующую настройку. Любая помощь или руководящие мысли были бы высоко оценены! Спасибо.
Создайте экземпляр обработчика в потоке пользовательского интерфейса (Thread A), передайте ссылку обработчика на Thread B. Если вы хотите уведомить Thread A о чем-нибудь, создайте объект Message и используйте обработчик для sendMessage()
.
Пример очень простого шаблона здесь
Проверка официальных документов для классов Handler и Message
google для учебника обработчика андроида