Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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中脱机时如何调用API?_Android_Api_Synchronization - Fatal编程技术网

在android中脱机时如何调用API?

在android中脱机时如何调用API?,android,api,synchronization,Android,Api,Synchronization,当互联网连接可用时,我成功地调用了API, 当没有internet连接时,如何调用相同的API 基本上, 我想知道在线和离线同步? 用户可以添加数据,但只有在互联网可用的情况下,数据才会推送到服务器。 我该怎么做?如果您使用REST服务,您可以阅读。这是关于使用改造实现客户端的讨论。如果使用Volley,您可以使用本文来实现基于OkHttp的缓存系统,该缓存系统也可以从Volley中使用 我在这里报告代码的一部分。阅读本文以获得完整的代码,并根据您的需要进行调整 // Add all inter

当互联网连接可用时,我成功地调用了API, 当没有internet连接时,如何调用相同的API

基本上, 我想知道在线和离线同步? 用户可以添加数据,但只有在互联网可用的情况下,数据才会推送到服务器。
我该怎么做?

如果您使用REST服务,您可以阅读。这是关于使用改造实现客户端的讨论。如果使用Volley,您可以使用本文来实现基于OkHttp的缓存系统,该缓存系统也可以从Volley中使用

我在这里报告代码的一部分。阅读本文以获得完整的代码,并根据您的需要进行调整

// Add all interceptors you want (headers, URL, logging, stetho logs)
OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
  .addInterceptor(provideOfflineCacheInterceptor())
  .addNetworkInterceptor(provideCacheInterceptor())
  .cache(provideCache());

...

private Interceptor provideOfflineCacheInterceptor() {
        return chain -> {
            Request request = chain.request();

            if (!isConnected()) {
                CacheControl cacheControl = new CacheControl.Builder()
                        .maxStale(7, TimeUnit.DAYS)
                        .build();

                request = request.newBuilder()
                        .removeHeader(HEADER_PRAGMA)
                        .removeHeader(HEADER_CACHE_CONTROL)
                        .cacheControl(cacheControl)
                        .build();
            }

            return chain.proceed(request);
        };
    }

这对我的API在离线时没有帮助你在使用改型吗?我在使用okhttp和截击你的问题很广泛,回答它需要描述如何做很多事情和/或设计一个相当大的程序。虽然很可能有办法做到这一切,但如果你描述一下到目前为止你做了什么,以及你遇到了哪些具体问题,你就更有可能得到答案。显示您的代码,并描述您想要的确切行为,以及该行为与当前代码的不同之处。包括任何错误的文本。你给出的细节越多,你可能得到的答案就越多。有关更多信息,请查看和。