我正在使用Retrofit 2库来安装Android REST客户端。 Retrofit本身支持同步和异步请求(参见here),后者的原因是不阻塞线程,因此不会被android中断。
实际上,在本地diff
中使用同步调用或直接从Retrofit进行异步调用是否更好?
如果一个比另一个好,那么技术原因是什么?
答案 0 :(得分:21)
使用任何流行的REST客户端(改造,排球等)的一个主要原因是它们减少了您在应用程序层管理的详细信息量。其中一个细节是确保您的网络请求发生在主线程之外。当他们已经用于其他功能的库提供相同的功能而没有仪式时,为什么会使用<text id="monId" x="100" y="70" textLength="100" lengthAdjust="spacingAndGlyphs" fill="red" stroke="darkred" stroke-width=".2" alignment-baseline="middle" text-anchor="middle">Mon texte</text>
?我能想到的唯一原因是 - 你不认为图书馆的线程非常好。该问题不适用于改造2,它使用AsyncTask
来分派异步调用。 OkHttp已经存在了很长时间并且被广泛使用,它管理自己的线程池来执行异步请求,并且非常可靠。
因此,使用改造异步的好处是更清晰的代码,并且我知道vs OkHttp
具有改进的同步调用没有任何缺点。我使用同步调用的唯一一次是当我的代码已经在后台线程中执行时出于另一个原因。我从不为网络调用创建单独的线程或asynctask,而是使用AsyncTask
。