Android 如果拍摄图像时方向发生变化,RxImagePicker不调用完成

Android 如果拍摄图像时方向发生变化,RxImagePicker不调用完成,android,rx-java,android-4.0-ice-cream-sandwich,rx-android,Android,Rx Java,Android 4.0 Ice Cream Sandwich,Rx Android,我正在使用RxImagePicker在我的仅肖像强制应用程序中拍照: RxImagePicker.with(getActivity()).requestImage(Sources.CAMERA).subscribe(new Action1<Uri>() { @Override public void call(Uri uri) { RxImageConverters.uriToBitmap(getActivity(), uri)

我正在使用RxImagePicker在我的仅肖像强制应用程序中拍照:

RxImagePicker.with(getActivity()).requestImage(Sources.CAMERA).subscribe(new Action1<Uri>() {
        @Override
        public void call(Uri uri) {
            RxImageConverters.uriToBitmap(getActivity(), uri).subscribe(new Action1<Bitmap>() {
                @Override
                public void call(final Bitmap bitmap) {
                    getActivity().runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            //i take over here if we ever get here...
                        }
                    });
                }
            });
        }
    });
RxImagePicker.with(getActivity()).requestImage(Sources.CAMERA).subscribe(newaction1()){
@凌驾
公共无效调用(Uri){
RxImageConverters.uriToBitmap(getActivity(),uri).subscribe(newaction1()){
@凌驾
公共无效调用(最终位图){
getActivity().runOnUiThread(新的Runnable()){
@凌驾
公开募捐{
//如果我们到了这里,我就接管这里。。。
}
});
}
});
}
});
如果我在不旋转设备的情况下拍照,它会工作(虽然图像是旋转的,但这是另一个问题)。但是,如果我以横向方向拍照,则永远不会调用
uriToBitmap
。这不是我的活动或片段被重新启动,因为所有的状态都保存在我的应用程序中


我做错了什么?

根据消息来源,
RxImagePicker
使用
PublishSubject
将uri通知传达给客户端。选择器启动隐藏活动,该活动在其
onDestroy()
回调中发出
onCompleted()
。在活动重新创建时调用该回调以响应方向更改。因为
Subject
可观察的
,所以它遵循
可观察的
,即在
onCompleted()
之后不应该有进一步的通知,因此
onNext()
之后的通知被忽略。还有一个问题:
onCompleted()
在成功拾取图像时被调用两次。似乎没有解决办法,可能的解决方案:

  • 分叉库并自行修复上述问题

  • 将问题提交到github上,以便作者可以解决这些问题

  • 推出您自己的解决方案(最佳IMO)


事实证明,这并不是什么特别的事情

我只是忘记了更新到最新版本,而是使用了几个月前的库版本,它解决了我面临的问题


我已更新到最新版本,问题消失了。

除了
runonUithread
之外,没有使用
observeon(AndroidSchedulers.mainThread()
,看起来您没有做错任何事情。RxImagePicker无法在主机活动被破坏和重新创建(发生在旋转时)后继续生存。