Android中定期刷新数据的最佳方法
我有两种情况需要在后台使用API从Web服务器更新数据。为了根据请求获取数据,我使用okHttp和Kotlin courtines。现在我想知道哪种方法是最好的,什么时候:Android中定期刷新数据的最佳方法,android,kotlin,Android,Kotlin,我有两种情况需要在后台使用API从Web服务器更新数据。为了根据请求获取数据,我使用okHttp和Kotlin courtines。现在我想知道哪种方法是最好的,什么时候: 我有一个包含来自webserver的数据的listview,我想在应用程序处于某个视图时更新它,比方说每10秒更新一次。(我正在考虑将for ex.handler与runnable一起使用) 我想在某些数据将以某种方式更改时显示通知。在这种情况下,我认为我应该使用后台服务 关于,您可能正在寻找服务: 您可以想象这些类似于后台
关于,您可能正在寻找服务: 您可以想象这些类似于后台进程(尽管它们有点不同)的进程,它们在后台运行,并与其他Android组件(如notification manager())交互
因此,从本质上讲,您需要创建一个服务,每隔一分钟左右检查一次API,然后向管理器添加一个通知。IMHO最佳方法是为脱机构建:将结果存储在持久性存储(即文件室)中。订阅功能的查询结果。然后,您可以使用新JetPack的WorkManager进行定期更新()。以下是文档中稍加修改的代码片段:
val dataCheckBuilder =
PeriodicWorkRequestBuilder<DataCheckWorker>(10, TimeUnit.SECONDS)
// ...if you want, you can apply constraints to the builder here...
// Create the actual work object:
val dataCheckWork = dataCheckBuilder.build()
// Then enqueue the recurring task:
WorkManager.getInstance().enqueue(dataCheckWork)
val数据检查生成器=
PeriodicWorkRequestBuilder(10,时间单位秒)
//…如果需要,可以在此处对生成器应用约束。。。
//创建实际工作对象:
val dataCheckWork=dataCheckBuilder.build()
//然后将定期任务排队:
WorkManager.getInstance().enqueue(dataCheckWork)
服务被弃用,取而代之的是WorkManager post API 29