android 使用“activity. Finish()”关闭应用程序导致重新启动时出现故障

idfiyjo8  于 2023-01-15  发布在  Android
关注(0)|答案(1)|浏览(325)

我正在使用activity. Finish()在注销时关闭应用程序。但是,当再次打开应用程序时,我的协程没有启动,更具体地说,viewModelScope.launch没有启动。这是因为我关闭应用程序时出错了吗?我希望在注销时关闭应用程序并清除应用程序中的所有视图模型和数据
下面是关闭应用程序的方法

val activity = (LocalContext.current as? Activity)
activity?. Finish()

下面是在重新启动时无法启动的协程(用户登录)

fun login() {
    Log.d("Login test", "Attempt to login stage 1")
    viewModelScope.launch {
        Log.d("Collection test", "Attempt to login stage 2")
        userState = AuthResource.Loading
        try {
            
        } catch (e: IOException) {
           
        } catch (e: HttpException) {
            
        } 
    }

}

第一个日志消息被接收,但从来没有第二个和加载状态是从来没有激活。我用Kotlin与jetpack组成

blmhpbnm

blmhpbnm1#

当一个Activity完成时,关联的视图模型被终止。还没有运行的协程将不会运行。这是视图模型的一部分a-它绑定到一个生命周期,而这个生命周期以Activity结束。如果你想确保它发生,你需要在另一个作用域上运行它。

相关问题