На этом шаге мы рассмотрим алгоритм переноса запроса из главного потока в фоновый.
Чтобы устранить сбой в работе, вам надо перенести сетевой запрос из главного потока в фоновый. Версии Kotlin 1.1 и выше включают API сопрограмм, который легко позволят сделать это.
Также вам понадобится библиотека расширений поддержки сопрограмм для Android. Щелкните на вкладке Logcat снова, чтобы спрятать ее, и откройте файл app/build.gradle. Добавьте новые зависимости.
dependencies { implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:0.22.5" testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' }
Рис.1. Добавление зависимостей (app/build.gradle)
Добавив новые строки в файл app/build.gradle, щелкните на кнопке Sync Now, которая появится в верхнем правом углу экрана, для синхронизации файлов Gradle.
На следующем шаге мы рассмотрим определение сопрограммы с помощью async.