我正在开发一个应用程序,其中自定义字体在应用程序启动时下载(根据客户端要求,我们必须在运行时执行此操作)。如果下载时间超过某个限制(例如5秒),我希望给予下载并退回到默认字体。我如何使用Kotlin实现这一点?
我的下载代码:
fun download(url: String, path: String) {
URL(url).openStream().use { input ->
FileOutputStream(File(path)).use { output ->
input.copyTo(output)
}
}
}
并行下载的代码(AppFont
是一个自定义数据模型,包含url
和path
字段):
appFonts.map {
async { download(it.url, it.path) }
}.awaitAll()
我尝试使用withTimeout
和withTimeoutOrNull
,但它们在这种情况下似乎不起作用...
非常感谢!
1条答案
按热度按时间b4lqfgs41#
我想我可能已经找到了一种方法,通过设置超时并捕获任何超时异常: