![](/img/trans.png)
[英]How do I return function value in lifecycle-aware coroutine scope in Android?
[英]Android Jetpack: lifecycle-aware recurrent periodic task execution with LiveData and ViewModels
我的应用程序已经使用了一些最近的 Android 模式进行网络调用:
LiveData
类ViewModel
类的 MVVM 架构Retrofit
接口等现在我想实现一个共同的功能,即每隔几分钟自动从 API 获取当前数据。
我阅读了WorkManager
并JobScheduler
了一下 - 我实现了它,但后来我看到WorkManager
( JobScheduler
) 在关闭应用程序后继续运行,这不是我想要的。 我也觉得WorkManager
API 对于这个简单的任务来说太过分了。
然后我读了一个关于 Codepath 的指南,它建议主线程重复性工作的Handler
类和后台重复性任务的ScheduledThreadPoolExecutor
。 我知道它们可能会正常工作,但我不确定它们是否是最佳解决方案。
我的问题是:目前循环 API 调用的最佳方法是:
LiveData
和ViewModel
类(可观察到的结果,如普通 API 调用)WorkManager 用于保证即使您的应用程序退出或设备重新启动也需要执行的工作。 根据您的描述,这似乎不是您的用例。
在这种情况下,线程池似乎是最好的选择,但您可以从本指南开始判断自己:“后台任务”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.