#android #progress-bar
#Android #индикатор выполнения
Вопрос:
В моем приложении я использую GPS для получения координат. У меня есть кнопка, которая обновляет местоположение. Когда я обновляю местоположение с помощью GPS, я создаю индикатор выполнения. Если я остановлю индикатор выполнения, я использую
mlocManager.removeUpdates(mlocListener);
в onCancelListener
панели выполнения… Когда я отменяю его, также запускается некоторая фоновая служба из-за
mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
Чтобы остановить это, я поместил свой код в поток. Как я могу остановить поток, поскольку многие функции (например, stop, destroy) устарели?
Ответ №1:
Поток в основном останавливается таким образом:
-
У вас есть некоторая переменная с синхронизацией доступа к ней. Когда вам нужно остановить поток, вы устанавливаете этой переменной некоторое значение, указывающее, что поток должен быть остановлен.
-
Поток считывает переменную во время выполнения, и если он видит, что переменная изменяется, останавливает просто возвращает из
run()
метода.
UPD: Это реализовано с помощью методов interrupt()
и interrupted()
Thread
класса.