Я использую Kotlin Coroutines
в моем приложении для Android
Ниже приведен мой код
convertCertificateToBase64
вызывается на onActivityResult
методе Android
fun convertCertificateToBase64(uri: Uri?, position: Int?) {
CoroutineScope(IO).launch {
performIOOperations(uri,position)
}
}
private suspend fun performIOOperations(uri: Uri?, position: Int?){
val file = File(uri?.path)
val buf = BufferedInputStream(FileInputStream(file))
buf.read(bytes, 0, bytes.size)
buf.close()
val base64String = Base64.encodeToString(bytes, Base64.NO_WRAP)
withContext(Dispatchers.Main){
// change my ui
}
}
Пока изображение не преобразовано в base64, я показываю progress bar
, и пользовательский интерфейс зависает, когда происходит операция base64