【发布时间】:2021-12-06 15:21:41
【问题描述】:
我试图在调用函数时在三秒内将用户的速度提高 10 倍,然后计算所有获取值的总和。我有全局变量:
lateinit var fusedLocationProviderClient : FusedLocationProviderClient
然后我在 onCreate 方法中初始化,如下所示:
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
然后这是我尝试计算速度总和的代码:
val task = fusedLocationProviderClient.lastLocation
var sumSpeed = 0F
task.addOnSuccessListener {
if (it != null) {
for (i in 1..10) {
Thread.sleep(300)
sumSpeed += it.speed
}
}
current_gps_speed_tv.text = "Total is: $sumSpeed"
if (sumSpeed < 25) {
...
}
}
sumSpeed 的结果始终保持不变(34m/s),是it.speed 的 10 倍,每次也相同(3.4m/s)。
我已经搜索过其他答案(例如this one),但我使用的似乎有所不同。为什么会这样?谢谢。
【问题讨论】: