请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我使用ImoocPluginManager来进行下载与更新,当getUpdatePluginInfo版本对比返回false的时候并不会走到跳转逻辑是什么情况

public Observable<PluginInfo> loadPlugin(@NonNull final String pluginName) {
    return fetchPluginInfo(pluginName).flatMap(
        new Function<PluginInfo, ObservableSource<HomePluginConfigInfo>>() {
          @Override public ObservableSource<HomePluginConfigInfo> apply(PluginInfo info) {
            return info == null ? getDownloadPluginInfo(pluginName)
                : getUpdatePluginInfo(pluginName, info);
          }
        }).flatMap(new Function<HomePluginConfigInfo, ObservableSource<File>>() {
      @Override public ObservableSource<File> apply(HomePluginConfigInfo homePluginConfigInfo) {
        //下载插件
        return downloadPlugin(homePluginConfigInfo.mPluginUrl, homePluginConfigInfo.mLocalPath);
      }
    }).observeOn(Schedulers.io()).flatMap(new Function<File, ObservableSource<PluginInfo>>() {
      @Override public ObservableSource<PluginInfo> apply(File file) {
        //插件的安装
        return installPlugin(file.getAbsolutePath());
      }
    }).doOnNext(new Consumer<PluginInfo>() {
      @Override public void accept(PluginInfo pluginInfo) {
        //插件预加载
        if (pluginInfo != null) preLoadPlugin(pluginInfo);
      }
    });
  }

正在回答 回答被采纳积分+3

1回答

qndroid 2020-07-10 12:21:13

能不能加一些日志或者断点跟进一下,看看哪里出问题了,直接贴源码,看不出问题所在

0 回复 有任何疑惑可以回复我~
  • 提问者 Zecyn_Cheung #1
    我知道为啥,但是不知道怎么改,就是走到getUpdatePluginInfo的时候版本对比后返回fasle rx后面的操作符都不会走了
    回复 有任何疑惑可以回复我~ 2020-07-10 17:14:35
  • qndroid 回复 提问者 Zecyn_Cheung #2
    操作符没走的话,一般都是报错了,报错被rxjava拦截了,你在subscribe得地方加一下onerror回调,看看有没有啥异常打印,还是要多加日志,别光看代码
    回复 有任何疑惑可以回复我~ 2020-07-10 17:26:35
  • 提问者 Zecyn_Cheung 回复 qndroid #3
    嗯嗯,Log我都是打过之后才问的你,subscribe就走了一个事件结束的方法onComplete,其他的方法都没走。
    回复 有任何疑惑可以回复我~ 2020-07-10 17:53:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信