gpt4 book ai didi

android - android : asynchronous request or synchronous request in AsyncTask? 的 Retrofit 2 最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:22 24 4
gpt4 key购买 nike

我正在使用 Retrofit 2 Android REST 客户端的库。 Retrofit 本身支持同步和异步请求(参见 here ),后者的原因是不阻塞线程,因此不会被 android 中断。

在实践中,在原生 AsyncTask 中使用同步调用还是直接从 Retrofit 中使用异步调用更好?如果其中一个优于另一个,技术原因是什么?

最佳答案

使用任何流行的 REST 客户端(retrofit、volley 等)的主要原因之一是它们减少了您在应用程序层管理的详细信息量。其中一个细节是确保您的网络请求发生在主线程之外。为什么要使用 AsyncTask,而他们已经在使用其他功能的库提供了相同的功能,而且仪式更少?我能想到的唯一原因是——您认为库的线程不是很好。这个问题不适用于改造 2,它使用 OkHttp 来分派(dispatch)异步调用。 OkHttp 已经存在了一段时间并被广泛使用,它管理自己的线程池来执行异步请求,并且很可靠。

因此,使用改型异步的好处是代码更清晰,据我所知,与使用改型同步调用的 AsyncTask 相比没有缺点。我唯一一次使用同步调用是因为其他原因我的代码已经在后台线程中执行。我从不为网络调用创建单独的线程或异步任务,而是使用 enqueue

关于android - android : asynchronous request or synchronous request in AsyncTask? 的 Retrofit 2 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33713190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com