Я задавал различные формы этого вопроса раньше и получил разные мнения.В основном мне посоветовали заняться чтением и экспериментами.Но безрезультатно.Я до сих пор не понимаю ни одного альтернативного решения, которое было предложено.Опять же, я разрабатываю приложение для Android, которое отображает данные Bluetooth .
У меня есть операция Bluetooth, которая, очевидно, создает фоновый поток, который обновляет экран данными, которые он получает через соединение Bluetooth,Когда я запускаю другое / новое действие для построения графика данных, я вижу, как фоновый поток bluetooth продолжает писать в Logcat . Так что я точно знаю, что фоновый поток bluetooth все еще работает, когда я запускаю свою активность Plot .
Моя цель - построить данные bluetooth, которые постоянно предоставляются фоновым потоком Bluetooth. Я добился успеха следующим образом: , так как этот фоновый поток bluetooth все еще работает, я решил использовать его метод update () для вызова статического метода Plot.plotData () для построения графика данных. И это работает , но я не понимаю почему. Он будет работать бесконечно без проблем - получение и отображение данных Bluetooth .
Но мне сообщили, что это, вероятно, не очень хорошее решение из-за возможного: потокобезопасность , утечка памяти , блокировка основного потока пользовательского интерфейса и т. Д. .Хотя я не сталкивался ни с одной из этих проблем, я не хочу делать вывод, что мое решение является хорошим из-за полученных отзывов.
Было предложено попробовать Service, AsyncTask и т. Д. Вместо вызовастатический метод my Plot.plotData () из метода update () фонового потока bluetooth.Но из проведенного мною исследования я не понимаю, как изменить свое решение на более подходящее.
Если кто-то найдет более подходящее решение, пожалуйста, озвучьте и опишите его. Я не хочу двигаться вперед, если есть проблема с моим текущим решением .
Если вы хотите увидеть исходный код, я был бы рад опубликовать его.