Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
#1

Один поток - несколько активностей - Программирование Android

08.09.2013, 18:27. Просмотров 984. Ответов 5
Метки нет (Все метки)

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

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

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

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

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

Подскажите как из первого активити передать ссылку на уже созданный экземпляр BtClass второму активити?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2013, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Один поток - несколько активностей (Программирование Android):

Несколько Активностей и кнопки - Программирование Android
Не переключается на другую активность по нажатию кнопки, хотя в манифесте прописано. Подскажите что исправить в коде. import...

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

Один ActionBar дл всех активностей - Программирование Android
Всем привет! Есть ActionBar который должен выглядеть одинаково для всех активностей.Но при этом приходится прописывать реализацию методов...

Наслоение активностей - Программирование Android
Всё ниже: private GridView.OnItemClickListener gridviewOnItemClickListener = new GridView.OnItemClickListener() { @Override ...

Стэки Активностей - Программирование Android
Всем привет. Подскажите где ошибся. Нужна небольшая помощь.Много читал про стэки но все ровно не чего не понял. И объяснить не кому. В...

один сервер несколько клиентов - Программирование Android
Всем привет) написала простую сервер-клиент программку (udp), теперь нужно сделать, что бы к серверу могло подключаться несколько клиентов....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MegaSinner
91 / 91 / 3
Регистрация: 09.04.2010
Сообщений: 746
08.09.2013, 19:04 #2
korsaj, я не читал весь вопрос... Ты не пробовал ту переменную объявить публичной и статической? (к ней будет доступ с другой активити)
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
08.09.2013, 19:50  [ТС] #3
Да тут даже не в переменной загвоздка, а в потоке который запущен в системе, от него нужно получать данные в других дочерних активностях.
Попробовал реализовать все на пальцах (описано в переформулеровке) и увидел что теряю ссылку не созданный в первом активити экземпляр класса. Не знаю как передать эту ссылку по цепочке дочерним активити.
Уже рассматриваю варианты сервис и синглтона..
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.09.2013, 20:29 #4
броткаст ресивер не пробовали?
korsaj
148 / 117 / 9
Регистрация: 16.08.2013
Сообщений: 510
09.09.2013, 17:27  [ТС] #5
Как раз наткнулся на него когда читал про сервис. Только пока не знаю можно ли его использовать с потоками. Но видимо что можно, раз вы подсказываете. А биндинг можно использовать?

Добавлено через 9 минут
Нашел ответ на свой вопрос. Биндинг используется для подключения к сервису.
Буду разбираться с бродкастресивером. Что получится отпишусь.

Добавлено через 20 часов 10 минут
Получилось работать с бродкастрессивером. Но только в спарке активити - сервис. А хотелось бы активити - поток (запущенный первым активити). Видимо такой возможности нет в андроиде так как активити находящаяся в стеке может быть уничтожена и следовательно работающий поток вместе с ней, а работая с сервисом можно предупредить такую ситуацию.
Если я не прав - подскажите в чем и как реализовать правильно работу с потоком.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.09.2013, 23:50 #6
Цитата Сообщение от korsaj Посмотреть сообщение
активити находящаяся в стеке может быть уничтожена и следовательно работающий поток вместе с ней
не, поток будет себе дальше работать, но если вам нужно чтобы что-то постоянно выполнялось в бекграунде, то это однозначно сервис.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 23:50
Привет! Вот еще темы с ответами:

Жизненный цикл активностей - Программирование Android
Здравствуйте, уважаемые форумчане. Столкнулся с небольшой проблемой, думаю вы сможете мне помочь. В моем приложении 1 activity и много...

ActionBar переход активностей - Программирование Android
как сделать что бы при выборе элемента tab переходило на другую активность android.support.v7.app.ActionBar.Tab tab =...

Сколько активностей может быть - Программирование Android
Ребята я писал приложения, но использовал по минимуму активностей, тупо было ненужно. Мне стало интересно сколько может быть "максимально",...

Анимации открытия и закрытия активностей - Программирование Android
Для анимации перехода между активностями использовал метод overridePendingTransition(R.anim.dt,R.anim.alpha). Анимация открытия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.09.2013, 23:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru