Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Kotlin和RX observable中手动创建对象的可观察对象_Android_Kotlin_Retrofit_Rx Java_Android Room - Fatal编程技术网

Android 在Kotlin和RX observable中手动创建对象的可观察对象

Android 在Kotlin和RX observable中手动创建对象的可观察对象,android,kotlin,retrofit,rx-java,android-room,Android,Kotlin,Retrofit,Rx Java,Android Room,我已经编写了一个函数,它应该返回可观察的。我想手动创建可观察的。可能吗 fun notifyOnStand(serviceType: String, id: String, action: TimestampedAction): Observable<GenericResponse>? { if (libraryOfflineDBHelper.getIsNetworkAvailableNow()) { return api.serviceOr

我已经编写了一个函数,它应该返回
可观察的
。我想手动创建可观察的
。可能吗

 fun notifyOnStand(serviceType: String, id: String, action: TimestampedAction): Observable<GenericResponse>? {
        if (libraryOfflineDBHelper.getIsNetworkAvailableNow()) {
            return api.serviceOrderOnStand(serviceType, id, action)
        } else {
            val onStandApiData = JsonObject()
            onStandApiData.addProperty("serviceType", serviceType)
            onStandApiData.addProperty("id", id)
            onStandApiData.addProperty("action", action.toString())
            var result: Int = 0
            launch {
                 result = offlineDatabaseManager.insertOfflineData(OfflineData(0, onStandApiData.toString(), "notifyOnstand"))
            }
            if(result > 0) {
                val genericResponse = GenericResponse(true)
                return Observable<genericResponse> //***THIS IS WHAT I WANT TO RETURN
            }
        }
    } 

public class GenericResponse {

    @Expose
    @OnComplete
    protected Boolean success = false;

    @Expose
    @OnComplete
    protected String error;

    public GenericResponse() {}

    public GenericResponse(Boolean success) {
        this.success = success;
    }

    public Boolean getSuccess() {
        return success;
    }

    public GenericResponse setSuccess(Boolean success) {
        this.success = success;
        return this;
    }

    public String getError() {
        return error;
    }

    public GenericResponse setError(String error) {
        this.error = error;
        return this;
    }
}
fun notifyOnStand(serviceType:String,id:String,action:TimestampedAction):可观察到吗?{
if(libraryOfflineDBHelper.getIsNetworkAvailableNow()){
返回api.serviceOrderOnStand(服务类型、id、操作)
}否则{
val onStandApiData=JsonObject()
onStandApiData.addProperty(“serviceType”,serviceType)
onStandApiData.addProperty(“id”,id)
onStandApiData.addProperty(“action”,action.toString())
变量结果:Int=0
发射{
结果=offlineDatabaseManager.insertOfflineData(OfflineData(0,onStandApiData.toString(),“notifyOnstand”))
}
如果(结果>0){
val genericResponse=genericResponse(真)
return Observable/***这是我想要返回的内容
}
}
} 
公共类一般响应{
@暴露
@未完成
受保护布尔值成功=false;
@暴露
@未完成
保护字符串错误;
公共GenericResponse(){}
公共GenericResponse(布尔成功){
成功=成功;
}
公共布尔getSuccess(){
回归成功;
}
公共GenericResponse setSuccess(布尔成功){
成功=成功;
归还这个;
}
公共字符串getError(){
返回误差;
}
公共GenericResponse setError(字符串错误){
this.error=错误;
归还这个;
}
}
仅供参考,这个函数正在做什么,它将检查是否有网络连接,然后它将调用现有的改装api调用,该调用返回一个可观察的GenericResponse,以便正常工作。 如果没有网络连接,我会将数据插入数据库,并根据该响应,手动创建
可观察的

我如何才能做到这一点?

您可以使用:

returnobservable.just(genericResponse)