我正在编写一个简单的 Android 应用程序,它需要在后台执行长时间运行的任务,然后返回该响应(任务长度最多为 10 分钟)。Kotlin 中似乎有数十种运行异步任务的方法,所有这些方法都有自己奇怪的怪癖。
我希望它工作的方式(用于测试)是创建一个带有标题和值的行。它应该在后台启动异步任务时放入该值的占位符文本。任务完成后,我希望值会更新。不需要与应用程序进行任何用户交互。
我尝试使用 LaunchedEffect 来做到这一点,因为这似乎是最简单的技术,使用可组合函数,例如:
@Composable
fun addLine(name: String, pwd: String)
{
Row
{
var output: String="Not Found"
Text(name)
LaunchedEffect(Unit)
{
val guess: String=bruteforce(pwd)
if (guess != "")
{
# Value to update the text to
output=guess
}
}
# This is the text the needs to change
Text(output)
}
}
我无法找到任何简单的方法来做到这一点,所有易于通过 Google 搜索的示例都需要用户交互或多个额外步骤或奇怪的自定义库。这应该是一项微不足道的任务,并且在其他框架中,但完全击败了我。
我并不太在意是否应该这样做——我只是想要一种简单的机制,用异步执行的值来更新一个或多个文本字段。复杂的任务只会执行一次。