Android Cookie

Android 安卓是最开放的手机操作系统,谷歌安卓APP开发和安卓市场的相关话题

在Android中使用RxJava排队任务

我正在开发具有后台数据同步function的Android应用程序。 我目前正在使用RxJava定期在服务器上发布一些数据。 除此之外,我想为用户提供一个“强制同步”按钮,它会立即触发同步。 我知道如何使用Observable.interval()以固定的时间间隔推送数据,我知道如何使用Observalbe.just()来推送那个被强制的数据,但我想将它们排队,如果是这样的话当前一个仍在运行时触发一个。 所以让我们举个例子,1min是自动同步的间隔,让我们说同步持续40秒(我夸张这里只是为了更容易点)。 现在,如果有任何机会,用户在自动仍然运行时按下“强制”按钮(反之亦然 – 当强制一个仍在运行时自动触发),我想将第二个同步请求排队第一个完成。 我画了这张图片,可能会有更多的视角: 如您所见,自动被触发(通过一些Observable.interval() ),并且在同步过程中,用户按下“强制”按钮。 现在我们要等待第一个请求完成,然后再次启动强制请求。 有一次,当强制请求正在运行时,再次触发了新的自动请求,只是将其添加到队列中。 从队列中完成最后一个后,一切都停止,然后稍后再次安排自动。 希望有人能指出我纠正操作员如何做到这一点。 我已经尝试使用Observable.combineLatest() ,但是队列列表在开始时被调度,当我将新的同步添加到队列时,它在前一个操作完成时没有继续。 Darko,非常感谢任何帮助