Open UsingMisz opened 4 years ago
因为如果在主线程中更新大量的进度时 整个页面在操作就会出现卡顿 大佬可以订阅在异步线程吗 之后在转到主线程中 或者做一个延迟处理
卡顿问题我是修改TaskManager里的subscribeDownload方法来解决,我改了1s一次: 原来的: private fun subscribeDownload() { downloadDisposable = connectFlowable .doOnSubscribe { downloadHandler.onStarted() } .subscribeOn(mainThread()) .observeOn(mainThread()) .doOnNext { downloadHandler.onDownloading(it) } .doOnComplete { downloadHandler.onCompleted() } .doOnError { downloadHandler.onFailed(it) } .doOnCancel { downloadHandler.onPaused() } .subscribeBy() } 修改后: private fun subscribeDownload() { downloadDisposable = connectFlowable.sample(1, SECONDS) .doOnSubscribe { downloadHandler.onStarted() } .subscribeOn(mainThread()) .observeOn(mainThread()) .doOnNext { downloadHandler.onDownloading(it) } .doOnComplete { downloadHandler.onCompleted() } .doOnError { downloadHandler.onFailed(it) } .doOnCancel { downloadHandler.onPaused() } .subscribeBy() }
我这里也有ANR 是因为耗时操作在主线程中吗 .subscribeOn(mainThread()) .observeOn(mainThread())
邮件已收到,三日内拜读
这是日志
我把这里改成了IO 线程 然后改了两个地方的断言 效果倒是不影响 想问下 这个有什么其他影响吗
taskManager.subscribe
在刷新进度条时候刷新页面导致卡顿问题