2011-12-15 4 views
1

Мое приложение в настоящее время использует обычные потоки для создания серверов, клиентов и даже потоков, которые меняют сети Wi-Fi и запускают предыдущие. Эти потоки выполняются в фоновом режиме и не влияют на пользовательский интерфейс, так что это то, что я искал, но проблема в том, что при входе в приложение все эти потоки воссоздаются. Возможно ли создать однотонный поток, который можно будет контролировать при повторном открытии приложения?Какой тип потока следует использовать для непрерывной работы?

Android предлагает несколько классов также:

Service: но он использует поток пользовательского интерфейса ...

AsyncTask: вероятно, лучший кандидат

IntentService: есть рабочий который можно было бы манипулировать? Вероятно, лучший вариант сверху.

Любые мысли/мнения будут высоко оценены. :)

EDIT:

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

Тема иерархии вызовов:

MainActivity ->NetworkSwap (бесконечный процесс, который выполняет сканирование, подключение и swaping WiFi сети), ServerTCP (бесконечно прослушивание подключений), ServerUDP (infininetely прослушивания для соединений)

Networkswap ->ClientUDP (отправляет широковещательный REQ уесть к serverUDP и заканчивается)

ServerUDP ->ClientTCP (посылает запрос на serverTCP и заканчивается)

+2

Вы можете создавать потоки в сервисе, точно так же, как вы можете создать их из активности. Если вы используете службу, ваши рабочие потоки будут продолжать работать, даже если ваша активность будет убита. –

ответ

1

Это до сих пор не совсем ясно мне, что вы используете эти темы для. Из названия кажется, что вы делаете текущую работу, но в описании это звучит, как будто вы делаете небольшие дискретные куски работы. Также неясно, связаны ли эти виды работ.

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

Смежные вопросы