当应用程序在后台运行时,observable.interval无法正常工作

时间:2018-10-05 13:49:25

标签: rx-java2

使用rxjava2(2.1.8)Observable.interval每隔13分钟调用一次RESTful API。如果应用程序在前台运行,而在后台运行,则无法正常工作。由于限制,我无法发布整个代码。

Observable.interval(13, TimeUnit.Milliseconds)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...

真的很感谢您的建议

1 个答案:

答案 0 :(得分:0)

要长期运行,您的代码应在Service中执行。尽管有些limitations是Android 8引入的,您可能需要检查一下。

但是,您可以使用AmarmManager或更好的替代方案[JobScheduler][2]来安排任务。使用JobScheduler,您还可以定义执行任务所需的条件。

注意.interval(13, TimeUnit.Milliseconds)表示每13毫秒而不是分钟发射一次的物品!