RxPermission不进入subscribe方法

2019-04-17  本文已影响0人  BergHuang

Des

new RxPermissions(mActivity)
       .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
       .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
       .subscribe(permission -> {
    doSomething();
}, e -> {log(e)})

试着加.doFinally(),当无权限时先进入了doFinally方法,说明本次请求权限直接结束了,实测log(e)没有异常,正常的应该进入subscribe再结束。

Cause

使用了 .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this)))
该方法可能默认绑定的生命周期事件是onPause(有待查看),当请求权限的弹出框出现时整个流程直接被dispose了。

Resolve

使用 .as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this, Lifecycle.Event.ON_DESTROY)))
添加了Lifecycle.Event.ON_DESTROY

上一篇下一篇

猜你喜欢

热点阅读