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

如何设置与观察发布者不同的字段?

如何解决如何设置与观察发布者不同的字段?

在观察为某个表中的图片设置ID的上传功能时,我需要为profilePictreIdwallpaperPictureId属性设置这些ID。我没有找到任何解决方案,flatMap或其他功能很难理解。我可以按照下面提到的方式获取ID,但是我需要将其隔离,以便将其放在不同的字段中。给我一个解决方案或一个好的文件。 不用担心代码中的其他功能,我在订阅时只需要Rx的分离功能。谢谢

更多说明: 上传后,我需要设置两个属性,但只应在订阅方法onSuccessupload中进行设置。我尝试了很多方法,但是我将两个ID都设置为profilePictureIdwallpaperPictureId,这是一个问题,应该将它们分开。

响应s1变量:

E/PictureIds@@@>>>: [4e6a3956bf8743b78fe4ffa546f627f0.png]
E/Utils: {"attachments":"4e6a3956bf8743b78fe4ffa546f627f0.png","status":"SUCCESS","message":"-"}

E/PictureIds@@@>>>: [7712b7f081d045e8b94f077e40994290.png]
E/Utils: {"attachments":"7712b7f081d045e8b94f077e40994290.png","message":"-"}

private disposable picture; // this varaibale is set in onSuccessupload to subscribe 

private void onSuccessupload(){
setPicture(RxBus.sendResponseUploadLink()
                .subscribe(s1 -> {
                    String[] id = new String[]{s1.getString("attachments")};
                    Timber.tag("PictureIds@@@>>>").e(Arrays.toString(id));
                    setProfilePictureId(id[0]);  // problem is here
                    setWallpaperPictureId(id[1]); // problem is here
                }));
}

private void uploadPicture(String path){
        Upload uploadPicture = new Upload();
        uploadPicture.upload(getToken(),path);
    }

@Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.channel_profile_image:
                selectProfileImage();
                break;
            case R.id.channel_cover_image:
                selectCoverImage();
                break;
            case R.id.submit_social_channel:
                onSuccessupload();
                uploadPicture(getProfileFilePath());
                uploadPicture(getWallpaperFilePath());
                

        }
    }

解决方法

subscribe函数返回一个Subscription对象,该对象可让您管理可观察对象和订阅者之间创建的关系。

您只有一个订阅者,所以最好的办法是在API响应中添加imageType,例如

    {
       "attachments":"4e6a3956bf8743b78fe4ffa546f627f0.png","imageType":"Wallpaper"
       "status":"SUCCESS","message":"-"
    }

因此,在订阅者中,您可以区分上传的图像并相应地调用不同的功能。

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