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)