Один поток - несколько активностей

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
korsaj
Сообщения: 7
Зарегистрирован: 04 июн 2013, 12:01

Один поток - несколько активностей

Сообщение korsaj » 08 сен 2013, 00:02

Пытаюсь разобраться с блютузом. За основу взял пример BluetoothChat. Выполняю соединение с устройством блютуз в одном активити (Activity_Bt_ListDevice). После удачного соединения запускается поток ConnectedThread реализованный в классе BluetoothService. Нужно перейти в другую активити (реализовано древовидное меню, например Activity_ReadData) для выбора действия с данными полученными в потоке.

Вопрос: Как работать с запущенным потоком ConnectedThread в другой активности?

Еще в классе BluetoothService реализован метод StartRead(boolean), который изменяет переменную класса public volatile boolean StartRead. Сама переменная служит для запуска/остановки передачи данных от потока к активити.

Вопрос: Как сохранить доступ данного метода к запущенному потоку при запуске другой активности.

Или как вариант: запускать сервис и использовать биндинг и броадкастресивер? Как рекомендовано сдесь viewtopic.php?f=38&t=1850

korsaj
Сообщения: 7
Зарегистрирован: 04 июн 2013, 12:01

Re: Один поток - несколько активностей

Сообщение korsaj » 08 сен 2013, 17:27

Переформулирую вопрос:
Есть две активити и один класс (BtClass) в котором реализован поток (поток (CalculatePrimes) после запуска каждую секунду инкриминирует переменную i пока переменная класса public volatile boolean finished не станет true). Переменная finished изменяется методом GetThread(boolean) класса BtClass. В первом активити запускается конструктор класса BtClass и запускается поток CalculatePrimes. После перехода во второе активити нужно получить доступ к запущенному потоку чтоб изменить переменную.
Пробовал после запуска второго активити запускать конструктор класса BtClass чтоб получить ссылку на объект, но соответственно получаю ссылку на новый экземпляр класса и соответственно метод GetThread(boolean) не имеет доступа к переменной finished уже запущенного потока.

Подскажите как из первого активити передать ссылку на уже созданный экземпляр BtClass второму активити?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Один поток - несколько активностей

Сообщение KamiSempai » 09 сен 2013, 10:55

Еще можно синглтон использовать, но сервис все равно более правильный вариант.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

korsaj
Сообщения: 7
Зарегистрирован: 04 июн 2013, 12:01

Re: Один поток - несколько активностей

Сообщение korsaj » 09 сен 2013, 17:49

Спасибо. Как раз и копаю в эту сторону.

Ответить