Предположим, что у меня есть Активность, называемая активностью Bluetooth, которая запускает фоновый поток Bluetooth, и поток работает вечно, даже когда Активность Bluetooth исчезает - да, он действительно работает вечно.
Не будет, если вы не положите его в Service
.Не просачивайте нити из Activity
, пожалуйста.
Обратите внимание, что вам уже сообщили об этом.
Мы можем обратиться к методу построениякак статический метод с именем Plot.plotData ();
Это не должен быть статический метод, как Я уже говорил вам .
Myпроблема в том, что я не могу сказать, когда активность Plot активна, поэтому я не могу сказать, когда начинать вызывать Plot.data ().
Именно поэтому действие Plot
должно отвечать за собственный рисунок.Ваш фоновый поток в вашем Service
должен исключительно обрабатывать сбор данных.Вы можете организовать передачу данных из Service
в Plot
через Messenger
, или через bindService()
и обратный вызов, или другими способами.
Проектирование службы, выполняющейСбор данных и действия, отображающие результаты, широко распространены в Android.Почтовые клиенты используют сервисы для сбора новых почтовых сообщений.Читатели каналов используют службы для сбора последних обновлений каналов.И так далее.Вы просто собираете информацию через Bluetooth, тогда как большинство примеров этой концепции собирают информацию через Интернет.
Итак, подведем итог: переместите логику сбора данных Bluetooth в Service
, используяфоновый поток (или темы, множественное число, если необходимо).Организуйте для Service
доставку данных в действие Plot
по мере их поступления.Пусть действие Plot
отобразит результаты.