使用ExecutorService+Runnables 好还是使用Call Enqueue 好?
Is it better to use ExecutorService+Runnables or to use Call Enqueue?
抱歉,如果这个问题太简单了,我是使用远程数据源的新手。
我假设 Enqueue 运行 在后台线程而不是主线程上,但哪个更快更好地进行优化?据我了解使用Runnables会占用更多代码,但我已经看到多个应用程序使用这种方法构建,它是否比更简单的Enqueue方法更好?
Retrofit 将使用底层 OkHttp
来调用服务器。 Enqueue 经过测试,最好使用开发人员全球认可的性能测试和许多其他方面。它还涵盖了您的 ExecutorService
,而您无需为其编写实现。我会为刚接触 OkHttp 的读者补充几点。
new Request.Builder().url(endpoint).build()
创建请求但是
不发送任何东西。
client.newCall(request).execute()
发送请求并等待
响应,但不下载响应,只下载它的 headers 所以
您可以立即查看 response.isSuccessful()
之类的内容。
response.body().string()
下载响应的 body 和
returns 一个字符串。
您可以像这样推送自己的 ExecutorService
实现
OkHttpClient.Builder().dispatcher(Dispatcher(executorService)).build()
抱歉,如果这个问题太简单了,我是使用远程数据源的新手。
我假设 Enqueue 运行 在后台线程而不是主线程上,但哪个更快更好地进行优化?据我了解使用Runnables会占用更多代码,但我已经看到多个应用程序使用这种方法构建,它是否比更简单的Enqueue方法更好?
Retrofit 将使用底层 OkHttp
来调用服务器。 Enqueue 经过测试,最好使用开发人员全球认可的性能测试和许多其他方面。它还涵盖了您的 ExecutorService
,而您无需为其编写实现。我会为刚接触 OkHttp 的读者补充几点。
new Request.Builder().url(endpoint).build()
创建请求但是 不发送任何东西。client.newCall(request).execute()
发送请求并等待 响应,但不下载响应,只下载它的 headers 所以 您可以立即查看response.isSuccessful()
之类的内容。response.body().string()
下载响应的 body 和 returns 一个字符串。
您可以像这样推送自己的 ExecutorService
实现
OkHttpClient.Builder().dispatcher(Dispatcher(executorService)).build()