我目前正在尝试在Kotlin上实现Web服务,我提出的解决方案可以按预期工作,但Android Studio调试器却无法。
这是我的简化代码:
fun loop(){
Handler().postDelayed({
subscribeCommand<TestModel> {
println("RESULT")
loop()
}
}, 1000)
}
fun startRequest(callback : () -> Unit){
callback()
}
inline fun <reified T> subscribeCommand(crossinline onResult : (MutableList<T>) -> Unit){
startRequest {
onResult(mutableListOf<T>())
}
}
此代码在调用loop()
我有一个额外的功能startRequest()
,那是因为我将在其他地方使用该回调。
在println("RESULT")
中放置断点时,它在应用程序第一次启动时起作用,但是随后我删除了断点并继续执行。
几秒钟后,我将断点放回去,代码仍然按预期运行,但是调试器不再捕获它。
我需要使用泛型类型,这就是为什么我使用这些内联/跨内联函数并且我没有找到其他解决方法。
这就是我正在使用的 Android Studio 3.4.1 摇篮3.4.1 科特林1.3.41 MinSdkVersion 16 TargetSdkVersion 28
答案 0 :(得分:0)
通过将参数从crossinline
更改为noinline