微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebView使RxJava在任务结束之前完成

如何解决WebView使RxJava在任务结束之前完成

我有一系列涉及网络操作和DB操作的功能,这些功能无法在主线程上完成,因此我决定使用RxJava作为解决方案。 RxJava可以按预期完美运行。

最近,我插入了另一个将WebView用作Web爬网程序的函数,一旦页面加载完毕,应该依次调用其余的网络和DB函数

问题是WebView的onPageFinished在另一个线程上调用,这导致我的RxJava在下一次调用之前完成,因此没有调用其余函数

这是RxJava代码,它调用WebView所在的函数

       df %>% 
          mutate(is_d = (x=="d")*1) %>% 
          group_by(year) %>%
          summarise(Val=if_else(sum(is_d)==1,sum(is_d*ranking),-1))

这是WebView代码

    compositedisposable.add(Completable
            .fromAction(this::webViewFunction)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(new disposableCompletableObserver() {
                @Override
                public void onComplete() {
                    ...
                }

                @Override
                public void onError(Throwable e) {
                    ...
                }
            }));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。