首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >退出屏幕时的网络呼叫- Android协程

退出屏幕时的网络呼叫- Android协程
EN

Stack Overflow用户
提问于 2020-08-25 15:35:05
回答 1查看 80关注 0票数 0

我正在尝试实现一个片段中的UI,在那里用户可以进行各种更新,我需要在用户退出屏幕时将其发送到后端。(批量更新)

我使用的是MVVM模式,其中网络调用是从viewmodel执行的。现在,viewModelScope.launch在这里不能工作,因为一旦用户退出,协程就会被onCleared()取消。现在,我添加了GlobalScope,它可以工作,但我也遇到了this和这个question

有没有其他的替代方案可以用协程来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-08-26 15:29:04

协程通常被推荐用于应该立即开始的工作,并且被范围限定为片段、活动、ViewModel或具有生命周期的任何其他对象的生命周期。由于其余的协程构建器都绑定到作用域,它们不会完成您想要做的事情,因为用户可能会在任何给定时间离开您的应用程序。

一个更好的方法是在CoroutineWorker中使用WorkManager,它不受用户界面或应用程序生命周期的限制,仍然具有使用协程的优点。使用WorkManager,当用户离开您指定的屏幕时,您的工作可以进入队列,并且一旦满足您指定的约束条件(例如,具有互联网连接),您的工作将保证运行。如果您仍在决定使用哪种解决方案,我建议您查看Android's Guide to background processing

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63574095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档