【发布时间】:2021-03-30 16:40:02
【问题描述】:
我正在尝试像这样将 HttpURLConnection 与 Kotlin 协程一起使用
var downloadJob: Job? = null
fun triggerDownload() {
job = downloadFile()
}
override fun onBackPressed() {
downloadJob.cancel()
super.onBackPressed()
}
fun downloadFile() = launch {
withContext(Dispatchers.IO) {
var connnection: HttpURLConnection? = null
try {
connnection = url.openConnection() as HttpURLConnection
connnection.connect()
//do the work
} catch (e: Exception) {
//handle exception
} finally {
connnection?.disconnect()
}
}
}
当作业被取消时,预计会抛出 CancellationException,但由于某种原因,在建立连接时不会发生这种情况。 有没有办法通过取消作业来中断连接尝试?
【问题讨论】:
标签: android kotlin httpurlconnection kotlin-coroutines