Android Acitivty / Шаблон дизайна связи Thread - PullRequest
0 голосов
/ 25 марта 2011

Я создаю программу на основе Android API версии 7 и хочу узнать, как лучше всего справиться с обменом данными между моим основным Activity и фоновым рабочим потоком.

Я увидел, что существует Handler класс, который принимает Message s, однако у меня есть сомнения, которые я исследовал и до сих пор не уверен.

Если Activity, который получает Message s, будет приостановлен или даже остановлен, что произойдетв фоновую службу, когда Message s проталкивается через Handler?Они стоят в очереди за кулисами и доставляются, когда Activity возобновляется?Наконец, подобно Content Provider s, Activity должен каким-то образом отменять регистрацию своего обработчика при паузе?Какие последствия имеет размещение информации на приостановленном Activity?

Я пока не настроен ни на один из способов справиться с этим, поэтому, пожалуйста, предложите свои предложения для лучшего способа справиться с такого рода коммуникациями.Мне нужно прислушиваться к обновлениям, поступающим из этого фонового потока, и последовательно (по порядку) обрабатывать их всякий раз, когда они поступают во внешний интерфейс.

Я видел такие сообщения здесь: Лучший способ дляСлужба, которая запускает Activity для связи с ней

Однако они не совсем правильно отвечают на мой вопрос, поэтому я посчитал необходимым начать новое сообщение

Есть также и AsyncTask с, но документация на самом деле не говорит, как справиться с паузой Activity с

1 Ответ

1 голос
/ 25 марта 2011

Когда ваша деятельность приостановлена ​​и вы хотите отправить ей сообщение, вы должны использовать Intent, но с Inten ваша деятельность будет возобновлена. Если вы хотите передать сообщение в свою активность, но не хотите его пробуждать, вам следует внедрить свой собственный стек сообщений.

Поток должен отправлять сообщения в ваш стек, и после возобновления вашей активности он должен читать стек, но таким образом у вас нет гарантии, что активность получит сообщения, так как она должна быть возвращена обратно пользователю. .

Использование Intent гарантирует, что ваша деятельность получит сообщение в режиме реального времени и отреагирует.

...