У меня есть код, который проверяет базу данных, если пользователь хочет, чтобы GPS работал. Мне нужно проходить через это каждые пару минут, могу ли я использовать Intentservice для запуска метода. Я пробовал реализовать Looper, но в итоге код больше не запускал проверку. Без Looper я получаю ошибку Looper: я не могу создать обработчик в потоке, который не вызвал Looper.prepare ();
Timer timer = new Timer ();
TimerTask gpsTask = new TimerTask () {
@Override
public void run() {
// TODO Auto-generated method stub
gpsPlotter();
}
};
// schedule the task to run starting now and then every hour...
timer.schedule(gpsTask, 0, 200);
private void gpsPlotter(){
// TODO Auto-generated method stub
try{
BeaconHandler dbg = new BeaconHandler(Ping.this);
List<Beacon> beacons = dbg.getAllBeacons();
int activecheck = 0;
for(Beacon bn : beacons){
activecheck = activecheck + bn.getStatus();
}
//db.close();
if(activecheck > 0 && updateset == 0){
pinger.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, reciever);
updateset = 1;
Log.d("GPS RESET", "Listener Set");
}
else if(activecheck == 0 && updateset == 1){
pinger.removeUpdates(reciever);
updateset = 0;
Log.d("GPS RESET", "Listener Removed");
}
else{
Log.d("GPS RESET", "No Modifications");
}
}
catch(Exception e){
Log.e("GPS RESET ERROR", e.getMessage(), e);
}
}
1 ответ
Я нашел свою проблему. Когда я начинаю запрашивать обновления местоположения, мне нужно было зарегистрировать его вот так.
pinger.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, reciever, getMainLooper());
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.