我有两种情况需要在后台使用API从Web服务器更新数据。为了根据请求获取数据,我使用okHttp和Kotlin的Courtines。现在,我想知道哪种方法最好,何时:
关于
答案 0 :(得分:0)
您可能正在寻找服务:https://developer.android.com/reference/android/app/Service
您可以想到这些类似于后台的进程(尽管有些不同),它们在后台运行并与其他Android组件(如通知管理器(https://developer.android.com/reference/android/app/NotificationManager)进行交互。
因此,从本质上讲,您将希望创建一个服务来每分钟左右检查一次API,然后向管理器添加通知。
答案 1 :(得分:0)
恕我直言,最好的方法是离线构建:将结果存储在永久存储区(例如Room)中。订阅您的功能的查询结果。然后,您可以使用新的JetPack的WorkManager进行常规更新(https://developer.android.com/topic/libraries/architecture/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)