如何在Android O及以上版本中向服务器发出重复的后台请求

时间:2018-12-06 12:03:45

标签: android service android-workmanager

我有一个应用程序每30秒向服务器发送一次请求。我使用服务。将目标版本更改为26后,服务将在后台停止运行。现在,我使用ContextCompat.startForegroundService(context,startIntent)启动服务,但是这种方法需要在状态栏中显示通知。 WorkManager并没有帮助我,因为它的最短时间为15分钟。有某种方法可以每30秒发出一次后台请求而不会显示通知吗?

1 个答案:

答案 0 :(得分:3)

您可以使用RxJava重复执行任务。

Observable.timer(30, TimeUnit.SECONDS).subscribeOn(Schedulers.io()).repeat()
                    .observeOn(AndroidSchedulers.mainThread()).subscribe(object : Observer<Long> {
                    override fun onComplete() {}

                    override fun onSubscribe(d: Disposable) {}

                    override fun onNext(t: Long) {
                       //do your task
                    }

                    override fun onError(e: Throwable) {}
                })