我正在开发具有后台数据同步功能的Android应用程序.我目前正在使用RxJava定期在服务器上发布一些数据.除此之外,我想为用户提供一个"强制同步"按钮,它会立即触发同步.我知道如何使用Observable.interval()以定期时间间隔推送数据,我知道如何使用它Observalbe.just()来推送那个被强制的数据,但是我想将它们排队,如果发生这种情况,那么在前一个仍然运行的情况下触发它.
所以让我们举个例子,当1min是自动同步的间隔时,让我们说同步持续40秒(我夸张这里只是为了更容易点).现在,如果有任何机会,用户在自动仍在运行时按下"强制"按钮(反之亦然 - 强制一个仍在运行时自动触发),我想将第二个同步请求排队第一个完成.
我画了这张图片,可能会有更多的视角:
如您所见,自动触发(由某些人Observable.interval()),在同步过程中,用户按下"强制"按钮.现在我们要等待第一个请求完成,然后再次启动强制请求.有一次,当强制请求正在运行时,再次触发了新的自动请求,只是将其添加到队列中.从队列中完成最后一个之后,一切都停止了,然后稍后再次安排自动计划.
希望有人能指出我纠正操作员如何做到这一点.我已尝试过Observable.combineLatest(),但是队列列表在开始时被调度,当我向队列添加新的同步时,它在前一个操作完成时没有继续.
Darko,非常感谢任何帮助
我正在处理我正在处理的当前Android项目的问题,它将OpenCV库作为模块导入并设置为依赖项.将Android Studio从0.8.14更新为1.0后,尝试同步Gradle我遇到以下错误:
错误:库项目无法设置applicationId.applicationId在默认配置中设置为'org.opencv'.
我想发布我的项目结构和成绩文件,但我还无法上传图片.