В моем приложении для Android есть заставка, которая проверяет gps и получает широту и долготу. Когда пользователь просто включит gps и запустит мое приложение, он не будет ждать исправления местоположения. Приложение просто показывает диалоговое окно с ошибкой и завершает работу. Поэтому я вставил некоторый код, чтобы ждать выполнения до широты и долготы больше нуля. Но это не работает. Это просто ждет и ждет. Любая помощь будет оценена.Как подождать мою нить до широты и долготы больше нуля
это мой код
if(gps.getLatitude()==0.0&&gps.getLongitude()==0.0){
while(gps.getLatitude()>0.0&&gps.getLongitude()>0.0){
try {
new Thread() {
public void run() {
try{
// calling background Async task to load Google Places
new LoadPlaces().execute();
}
catch (Exception e) {
Log.e("inside thread", e.getMessage());
}
}
}.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else{
// calling background Async task to load Google Places
new LoadPlaces().execute();
}
Lat и lng могут быть отрицательными или положительными, может быть! (Gps.getlatitude == 0), как это во время, чего вы ждете от координат из gps? – JRowan
Если lat и lng оба позитивны, ваш цикл while будет продолжать выполнение и ждать – JRowan
, если gps только что включен, значение местоположения равно null, так что значение широты и долготы будет 0.0, потому что оно не может быть нулевым, его тип double –