我有存储在应用程序类的数组列表中的视图模型。因此,即使活动因旋转而被破坏,它们的生命周期也会继续(但是一旦 isFinishing 为真,则视图模型实例将从列表中删除并不再存在)。
我也有视图模型使用的数据服务单例,这些视图模型也无限期地存在。因此,如果我使用 anko 异步块在我的视图模型中启动异步调用,即
async {
val data = DataService.instance.getData()
uiThread {
if (data != null) {
//do something
}
}
}
如果用户在通话完成之前按下返回按钮会发生什么?IsFinishing 将是真的,我的视图模型实例将不再存在。异步调用异常返回时会出现还是会优雅地死掉?