Сокеты и многопоточность с Android - PullRequest
1 голос
/ 31 марта 2011

Я пытаюсь разрешить двум потокам в приложении Android взаимодействовать друг с другом.Просто, правда?У меня есть два потока:

  • Основной поток управляет пользовательским интерфейсом приложения (поток A)
  • Другой контролирует сокет TCP (поток B)

В настоящий момент для того, чтобы поток А мог отправлять сообщения в поток Б, я использую класс со статическими данными экземпляра и статическими методами, которые могут быть установлены потоком А. Поток В использует цикл для проверки входящихданные через сокет, поэтому я использовал тот же цикл для проверки изменений в этом дополнительном классе.Вот как мне удалось отправить данные из потока A в поток B. Однако я также хотел бы, чтобы поток B мог уведомить поток A, основной поток пользовательского интерфейса, о том, что сокет был закрыт, и действовать в соответствии с этим.К сожалению, поток А не использует никаких циклов для непрерывной проверки чего-либо.Итак, мой вопрос, как я могу уведомить нить A об изменении в нити B?Я выполнил поиск и обнаружил, что шаблон Observer будет полезен, но я не уверен, что смогу использовать шаблон Observer в моей существующей установке.Любая помощь или руководящие мысли будут высоко ценится!Спасибо.

1 Ответ

2 голосов
/ 31 марта 2011

Создание обработчика в потоке пользовательского интерфейса (поток A), передача ссылки на обработчик в поток B. Если вы хотите уведомить поток A о чем-то, создайте объект Message и используйте обработчик для sendMessage().

Пример очень простого шаблона здесь

Проверьте официальные документы для классов обработчиков и сообщений

учебник по google для android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...