Intereting Posts
Включение безопасности глобальной безопасности Spring Security нарушает инъекцию зависимостей (с Kotlin) Мне нужно перезапустить IDE для запуска тестов Использование метода получения Anko Ошибка несоответствия AnkoContext <ViewGroup> Найдено AnkoContext <Context> проект kotlin не может быть построен в градле Как использовать джексон для десериализации в коллекциях Котлина Android – Как запустить пользовательскую функцию DialogPreference из MainActivity? Kotlin: Как запустить методы обслуживания в контексте класса транзакций? Anko эквивалентно стилю attr в xml IncompleteAnnotationException: dagger.Provides Отсутствует тип элемента Kotlin: изменения, сделанные в супер-конструкторе, перезаписываются Kotlin – объявить общий класс с параметром типа, который является общим Недвижимость без геттера в Котлине Получение сигнала Fata 11 при попытке использования Observable Android gradle build неожиданно отключается в ': app: mergeDebugResources' без сообщений об ошибках Хранить лямбда в переменной в котлин

Asynctask несколько последовательных запросов URL в Android

У меня возникли проблемы с запросом нескольких последовательных URL-адресов URL-адресов. Мое приложение не сбой. После использования функции loadUrls () в этом коде он последовательно выполняет 6 запросов url и сохраняет их в массиве, однако я могу видеть только первый ответ строки запросов.

fun loadUrls(){ val locationInput = “AsiaWorldExpo” val locationCoordinatesLong = 113.947 val locationCoordinatesLat = 22.2913 val myAPIKey = "REMOVED" val transportMode = arrayListOf("&mode=driving" ,"&mode=walking", "&mode=bicycling", "&mode=transit&transit_mode=bus", "mode=transit&transit_mode=subway", "mode=transit&transit_mode=train") var requestURLArray = ArrayList<String>() for (i in 0 until transportMode.size) { requestURLArray.add("https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins= " + "$locationCoordinatesLat,$locationCoordinatesLong &destinations=$locationInput ${transportMode[i]} &key= $myAPIKey") } MyAsyncTask().execute(requestURLArray[0],requestURLArray[1],requestURLArray[2] ,requestURLArray[3], requestURLArray[4], requestURLArray[5]) } override fun doInBackground(vararg p0: String?): String { try { val inString = ArrayList<String>() for (i in 0 until p0.size) { val url = URL(p0[i]) val urlConnect = url.openConnection() as HttpURLConnection urlConnect.connectTimeout = 7000 inString.add(ConvertStreamToString(urlConnect.inputStream)) publishProgress(inString[i]) Log.d("APP_TEST", "" + p0[i]) //Added for debugging try { Thread.sleep(500) } catch (e: InterruptedException) {} } }catch (r:Exception){} return " " } override fun onProgressUpdate(vararg values: String?) { try{ val jsonObject = ArrayList<String>() for (i in 0 until values.size){ jsonObject.add(values[i]!!) Log.d("Testing", "" + values[i]) //Added for debugging } idTextView2.text = jsonObject[1] 

EDIT: указанная выше строка кода не выводит текстовый вид в пользовательский интерфейс от jsonObject [1] до jsonObject [5]. Работает только jsonObject [0].

  }catch (e:Exception){} } override fun onPostExecute(result: String?) { } } fun ConvertStreamToString(inputStream: InputStream): String{ val bufferReader = BufferedReader(InputStreamReader(inputStream)) var line ="" var allString="" try{ do{ line=bufferReader.readLine() if (line!=null){ allString+=line } } while (line!=null) inputStream.close() } catch (e:Exception){} return allString } 

Вот обновленный Logcat:

08-18 09: 51: 21.697 2660-3883 / com.google.android.gms W / DriveInitializer: поток инициализации фона завершен

08-18 09: 52: 00.405 1369-1409 /? W / audio_hw_generic: Не поставляя достаточное количество данных для HAL, ожидаемое положение 772788, только написал 772560

08-18 09: 52: 00.433 3297-3320 / com.companyname.emitless2 D / EGL_emulation: eglMakeCurrent: 0x7ebacc5cc6e0: ver 2 0 (tinfo 0x7ebadbdb9d00)

08-18 09: 52: 00.441 3297-3320 / com.companyname.emitless2 D / EGL_emulation: eglMakeCurrent: 0x7ebacc5cc6e0: ver 2 0 (tinfo 0x7ebadbdb9d00)

08-18 09: 52: 00.590 3297-3894 / com.companyname.emitless2 D / APP_TEST: https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins= 22.29129833333333,113.94699999999999 & destination = AsiaWorldExpo & mode = вождение и ключ = "УДАЛЕННЫЙ"

08-18 09: 52: 00.590 3297-3297 / com.companyname.emitless2 D / Тестирование: {"destination_addresses": ["Cheong Wing Rd, Chek Lap Kok, Hong Kong"], "origin_addresses": ["Yi Tung Rd , «Tung Chung, Hong Kong»], «rows»: [{"elements": [{"distance": {"text": "5.9 km", "value": 5948}, "duration": {"text" : «9 минут», «значение»: 541}, «статус»: «ОК»}]}], «статус»: «ОК»}

08-18 09: 52: 01.286 3297-3894 / com.companyname.emitless2 D / APP_TEST: https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins= 22.29129833333333,113.94699999999999 & destination = AsiaWorldExpo & mode = walk & key = "REMOVED"

08-18 09: 52: 01.287 3297-3297 / com.companyname.emitless2 D / Тестирование: {"destination_addresses": ["Cheong Wing Rd, Chek Lap Kok, Hong Kong"], "origin_addresses": ["Yi Tung Rd , «Tung Chung, Hong Kong»], «rows»: [{"elements": [{"distance": {"text": "5.9 km", "value": 5948}, "duration": {"text" : «9 минут», «значение»: 541}, «статус»: «ОК»}]}], «статус»: «ОК»}

08-18 09: 52: 01.865 3297-3894 / com.companyname.emitless2 D / APP_TEST: https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins= 22.29129833333333,113.94699999999999 & destination = AsiaWorldExpo & mode = bicycling & key = "REMOVED"

08-18 09: 52: 01.865 3297-3297 / com.companyname.emitless2 D / Тестирование: {"destination_addresses": ["Cheong Wing Rd, Chek Lap Kok, Hong Kong"], "origin_addresses": ["Yi Tung Rd , «Tung Chung, Hong Kong»], «rows»: [{"elements": [{"distance": {"text": "5.9 km", "value": 5948}, "duration": {"text" : «9 минут», «значение»: 541}, «статус»: «ОК»}]}], «статус»: «ОК»}

08-18 09: 52: 02.409 1672-1672 / system_process W / WindowManager: Попытка удалить несуществующий токен: android.os.Binder@7d40824

08-18 09: 52: 02.495 3297-3320 / com.companyname.emitless2 D / EGL_emulation: eglMakeCurrent: 0x7ebacc5cc6e0: ver 2 0 (tinfo 0x7ebadbdb9d00)

08-18 09: 52: 02.540 3297-3320 / com.companyname.emitless2 D / EGL_emulation: eglMakeCurrent: 0x7ebacc5cc6e0: ver 2 0 (tinfo 0x7ebadbdb9d00)

08-18 09: 52: 03,632 1369-1410 /? W / audio_hw_generic: Не поставляя достаточное количество данных для HAL, ожидаемое положение 1080247, только написал 927360

08-18 09: 52: 04.458 1672-1672 / system_process W / WindowManager: Попытка удалить несуществующий токен: android.os.Binder@f7c5953

    Вы создаете новый экземпляр с именем inString типа ArrayList на каждой итерации. Поэтому, когда вы создаете новый экземпляр и добавляете к нему элемент, этот элемент всегда равен 0. Исправьте его, перемещая создание экземпляра arrayList вне цикла.

     override fun doInBackground(vararg p0: String?): String { try { val inString = ArrayList<String>() for (i in 0 until p0.size) { val url = URL(p0[i]) val urlConnect = url.openConnection() as HttpURLConnection urlConnect.connectTimeout = 7000 inString.add(ConvertStreamToString(urlConnect.inputStream)) publishProgress(inString[i]) try { Thread.sleep(500) } catch (e: InterruptedException) {} } }catch (e:Exception){} return " " }