У меня есть приложение для Android, которое подключается к Интернету для выполнения обратного геокодирования по широте и долгим координатам в режиме реального времени.Это задерживает интерфейс и может привести к ошибке «не отвечает - принудительное закрытие / ожидание» (как и ожидалось, без использования асинхронных / обработчиков потоков!)больше нет задержки пользовательского интерфейса!), но переменные, установленные внутри метода onLocationChanged (который устанавливает для них широту и долготу), недоступны.Класс, в котором я делаю это, связан с другим отдельным классом, который передает переменные и может отправлять смс человеку, который включает адрес с обратным геокодированием.Тем не менее, поскольку реализация Async Task с использованием метода doinbackground, я больше не могу отправлять то, что мне нужно.Я не знаю, смогу ли я объяснить лучше, я приведу пример кода.
public void onLocationChanged (Location loc) {mylat = loc.getLatitude ();mylong = loc.getLongitude ();}
Список адресов = geoCoder.getFromLocation (mylat, mylong, 1);// afaik, это код, который делает интернет-вещи, которые отстают от пользовательского интерфейса.Если я помещу это в doinbackground, он не сможет получить доступ к mylat & my long, и «loc.getLatitude» должен быть выполнен в методе «onLocationChanged», который ДОЛЖЕН существовать.Если я оставлю код ListAddress вне doinbackground, все будет работать, НО интерфейс явно запаздывает.
Может кто-нибудь посоветовать лучший способ получить mylat = loc.getLatitude ();& mylat = loc.getLatitude ();внутри метода doinbackground?