我正在将图像上传到S3存储桶,它可以工作,但是在上传时会阻塞主线程(UI在下载过程中基本上停止了)。我必须使用异步任务来使上传工作正常进行,因为如果不这样做,Android会在主线程上引发有关网络调用的异常。如何强制上传在后台线程上运行?
这是我的代码:
val metaData = ObjectMetadata()
metaData.setContentLength(myBitmapByteArray.size.toLong())
doAsync {
try {
s3Client.putObject("my-bucket", "my_test_file/abc.bmp", myByteInputStream, metaData)
} catch (e: AmazonServiceException) {
System.err.println(e.errorMessage)
System.exit(1)
}
Log.i("AMAZON", "File upload to s3 completed")
//TODO: uithread never called below
// uiThread {
//
// }
}