Не запускается Runnable
Имеется приложение с получением геолокации пользователя, всё работает, за исключением того, что в фоновом режиме получение геоданных прекращается. Предполагаю, что необходимо использовать класс Runnable Вот код
@Override
public void onStop() {
super.onStop();
final Handler handler = new Handler();
new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
//Проверка на разрешение передачи геоданных
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
System.out.println("the checkSP works_false"); //Сообщение о том, что нет разрешений
return;
} else System.out.println("the checkSP works_true"); // сообщение о том, что разрешения есть
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 1, GPS_location);
System.out.println("the method works"); // вывод о том, что Runnable работает
}
});
}
};
System.out.println("the onStop works");
}
При сворачивании приложения или блокировки экрана происходит запуск метода onStop и сообщение о его работе в консоль, в самом методе run происходит проверка разрешений на передачу геоданных и получение текущего местоположения пользователя. Вся проблема в том, что Никаких других сообщений, кроме "the onStop works" не происходит. Где я мог накосячить?
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Вы только создали объект Runnable. Его нужно передать потоку и запустить.
Thread tread = new Thread (new Runnable ...);
thread.start();