Получение текущей активности из потока - PullRequest
2 голосов
/ 28 ноября 2010

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

На данный момент я также хотел бы сохранить этот потоквыполняется (в ожидании соединения TCP).

Я могу изменить действие с одного на другое, используя startActivity () для Intent, но это не работает, пока я в потоке.

Как можноПожалуйста, добейтесь такого поведения?

Большое спасибо,

Джеймс

1 Ответ

5 голосов
/ 28 ноября 2010

Практические правила долгосрочного программирования задач в Android. Если у вас есть:

  1. Кратковременное задание (поток), которое одновременно используется только одним действием, затем используйте AsyncTask .

  2. Долгосрочная задача, которая должна пережить жизненный цикл действия и / или использоваться несколькими действиями (также внешними по отношению к вашему приложению), чем использовать Сервис . Служба - это отдельный процесс, который более устойчив к отключениям, чем активность.

  3. Задача, которую необходимо выполнить на основе каких-либо внешних условий, таких как: местоположение изменилось, сеть доступна и т. Д. Или, если вам нужна периодическая синхронизация данных или задача на основе таймера, вам не нужно задача выполняется, просто зарегистрируйте свой код в соответствующем API, и ОС вызовет его при необходимости. Это называется асинхронным программированием и является предпочтительным вариантом в Android, поскольку сводит к минимуму использование памяти и процессора, вызывая код только тогда, когда его нужно вызвать.

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