Android: многопоточность-Bluetooth SPP / RFCOMM-Как сохранить активными мои BluetoothSocket и OutputStream при изменении активности - PullRequest
4 голосов
/ 17 сентября 2010

Я довольно новичок в Android и очень плохо знаком с многопоточностью.

Я пишу приложение для Android, которое содержит несколько действий, реализующих onClickListners, которые отправляют сообщение Bluetooth по нажатию кнопки.Я успешно смог подключиться и держать открытыми мои BluetoothSocket и OutputStream во время одного занятия.Я не получаю никаких сообщений и всегда буду подключен как клиент к известному MAC-адресу.Когда пользователь хочет войти в подменю, которое также вызывается нажатием кнопки, как мне сохранить мой BluetoothSocket открытым?

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

Должно ли это быть чем-то, что я начинаю в первом действии программы, и должен реализовать его таким образом, чтобы он не заканчивался onPause () и onStop (), и если да, то как мне его запустить и какие классыбудет рекомендовано?

Или это то, что я мог бы определить в файле AndroidManifest.xml, чтобы он запускался и работал все время после запуска приложения.Запускать как службу и использовать сообщения / обработчики для передачи данных?

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

Спасибо,

Джонатан

...