gpt4 book ai didi

安卓喷气背包 : lifecycle-aware recurrent periodic task execution with LiveData and ViewModels

转载 作者:行者123 更新时间:2023-11-29 02:20:27 24 4
gpt4 key购买 nike

我的应用已经使用了一些最新的 Android 网络调用模式:

  • LiveData
  • 具有 ViewModel 类的 MVVM 架构
  • 用于 Repository 类的 Kotlin 协程
  • Retrofit 界面等

现在我想实现一个通用功能,即每隔几分钟自动从 API 获取当前数据。

我阅读了有关 WorkManager 的内容并尝试了一下 - 我实现了它,但随后我看到 WorkManager (JobScheduler) 在关闭后继续运行这不是我想要的应用程序。我还觉得 WorkManager API 对于这个简单的任务来说太过分了。

然后我读了一个guide在 Codepath 上建议用于主线程重复性作业的 Handler 类和用于后台重复性任务的 ScheduledThreadPoolExecutor。我知道它们可能会正常工作,但我不确定它们是否是最佳解决方案。

我的问题是:目前循环 API 调用的最佳方式是什么:

  • LiveDataViewModel 类一起工作(像普通 API 调用一样可观察到的结果)
  • Kotlin 友好吗(有什么方法可以使协程循环?)
  • 是“生命周期感知”的,这意味着当应用程序进入后台时它会停止?

最佳答案

WorkManager 用于保证即使您的应用程序退出或设备重新启动也需要执行的工作。从您的描述来看,这似乎不是您的用例。

在这种情况下,线程池似乎是最佳选择,但您可以从本指南开始判断自己:“Background Tasks ”。

关于安卓喷气背包 : lifecycle-aware recurrent periodic task execution with LiveData and ViewModels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277331/

24 4 0