【发布时间】:2021-04-02 23:16:08
【问题描述】:
我在 MyActivity 中玩得很开心,看起来像这样
GlobalScope.launch(Dispatchers.Main) {
mainFunction()
}
还有一个 mainFunction 的乐趣
private suspend fun mainFunction() = withContext(Dispatchers.Default) {
if (test1!!) {
some code
} else {
some code
}
}
和 test1 的乐趣
private suspend fun test1(start: Date): Boolean? {
try {
if (status?.code == 200) {
some code
true
} else if status?.code == 401) {
reLoginUser()
true
}
} catch (e: IOException) {
false
}
return true
}
重新登录用户乐趣
private suspend fun reLoginUser() {
re login code
if (loginResponse != null && statusCode == 200) {
mainFunction()
}
} else {
some code
}
}
我需要以这种方式引入 reLoginUser 乐趣。从那时起,我的应用程序在执行所有操作时都会冻结。工作已完成,但应用程序冻结。我不知道为什么会这样,我猜它实际上在 mainFunction() 内部调用 mainFunction()。这样做的正确方法是什么?我做错了什么?
【问题讨论】:
标签: java android kotlin kotlin-coroutines