Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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中从AWSAppSyncClient删除/清除缓存策略_Android_Kotlin_Aws Appsync - Fatal编程技术网

在android中从AWSAppSyncClient删除/清除缓存策略

在android中从AWSAppSyncClient删除/清除缓存策略,android,kotlin,aws-appsync,Android,Kotlin,Aws Appsync,我正在尝试从AWSAPSyncClient中删除/清除缓存机制 现在的问题是,我要提前获取存储或请求的值(缓存该值并返回该值) 我想要的是,它应该从api返回值(不应该缓存该值) 我试过这个: AWSAppSyncClient.builder() .context(syncPort.androidContext()) .awsConfiguration(AWSConfiguration(syncPort.androidContext()))

我正在尝试从AWSAPSyncClient中删除/清除缓存机制

现在的问题是,我要提前获取存储或请求的值(缓存该值并返回该值)

我想要的是,它应该从api返回值(不应该缓存该值)

我试过这个:

AWSAppSyncClient.builder()
            .context(syncPort.androidContext())
            .awsConfiguration(AWSConfiguration(syncPort.androidContext()))
            .build()
            .clearCaches(ClearCacheOptions.builder().clearSubscriptions().build())
查询代码:

override fun getMedication(date: String): Single<SampleAdministration> {
return Single.create<SampleAdministration> { emitter ->
    client.query(
        GetSampleQuery.builder().date(date).build()
    ).enqueue(object : GraphQLCall.Callback<GetSampleQuery.Data>() {
        override fun onFailure(e: ApolloException) {
            emitter.onError(e)
        }

        override fun onResponse(response: Response<GetSampleQuery.Data>) {
            val data = response.data()?.sample
            val sampleAdministration = object : SampleAdministration {
                override var date: String? =
                    data?.date()
            }
            emitter.onSuccess(sampleAdministration)
        }
    })
}
覆盖(日期:字符串):单个{
返回Single.create{emitter->
client.query(
GetSampleQuery.builder().date(date.build())
).enqueue(对象:GraphQLCall.Callback(){
覆盖失效(e:异常){
发射器。onError(e)
}
覆盖响应(响应:响应){
val数据=响应.数据()?.样本
val samconcedministration=对象:samconcedministration{
覆盖变量日期:字符串=
数据?.date()
}
发射器成功(SAMC管理)
}
})
}

}

我已从AWSAPSyncClient.builder()中删除clearCaches

并在查询中添加了responseFetcher

 override fun getMedication(date: String): Single<SampleAdministration> {
return Single.create<SampleAdministration> { emitter ->
    client.query(
        GetSampleQuery.builder().date(date).build()
    ).responseFetcher(AppSyncResponseFetchers.NETWORK_ONLY).enqueue(object : GraphQLCall.Callback<GetSampleQuery.Data>() {
        override fun onFailure(e: ApolloException) {
            emitter.onError(e)
        }override fun onResponse(response: Response<GetSampleQuery.Data>) {
            val data = response.data()?.sample
            val sampleAdministration = object : SampleAdministration {
                override var date: String? =
                    data?.date()
            }
            emitter.onSuccess(sampleAdministration)
        }
    })
}
覆盖(日期:字符串):单个{
返回Single.create{emitter->
client.query(
GetSampleQuery.builder().date(date.build())
).responseFetcher(仅适用于AppSyncResponseFetchers.NETWORK_)。排队(对象:GraphQLCall.Callback(){
覆盖失效(e:异常){
发射器。onError(e)
}覆盖响应(响应:响应){
val数据=响应.数据()?.样本
val samconcedministration=对象:samconcedministration{
覆盖变量日期:字符串=
数据?.date()
}
发射器成功(SAMC管理)
}
})
}