Retrofit 是否在主线程上进行网络调用?

2024-04-25

我正在尝试在 Android 上探索 Retrofit+OkHttp。这是我在网上找到的一些代码:

RestAdapter restAdapter = new RestAdapter.Builder().setExecutors(executor, executor)
.setClient(new OkClient(okHttpClient))
.setServer("blah").toString())
.build();

如果我不使用执行程序服务,我的代码会在主线程上运行吗?我应该在新线程中发出网络请求吗?


Retrofit 方法可以声明为同步或异步执行。

具有返回类型的方法将同步执行。

@GET("/user/{id}/photo")
Photo getUserPhoto(@Path("id") int id);

异步执行要求方法的最后一个参数是Callback.

@GET("/user/{id}/photo")
void getUserPhoto(@Path("id") int id, Callback<Photo> cb);

在 Android 上,回调将在主线程上执行。对于桌面应用程序,回调将在执行 HTTP 请求的同一线程上发生。

Retrofit 还集成了 RxJava 以支持返回类型为rx.Observable

@GET("/user/{id}/photo")
Observable<Photo> getUserPhoto(@Path("id") int id);

可观察请求是异步订阅的,并在执行 HTTP 请求的同一线程上观察。观察不同线程(例如 Android 的主线程)调用observeOn(Scheduler)在返回的Observable.

注意:RxJava 集成是实验性的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Retrofit 是否在主线程上进行网络调用? 的相关文章

  • 反转 ArrayList 最简单的方法是什么?

    反转这个ArrayList的最简单方法是什么 ArrayList
  • Mono for Android,读取和写入 XLSX

    我正在使用 Mono for Android 开发一个应用程序 我需要读取和创建 XLSX Excel 文件的功能 我尝试过EPPlus和NPOI 并快速浏览了一下微软的Open XML SDK 发现了以下问题 EPPlus 需要 Wind
  • 无法解析符号“AndroidJUnit4”

    显然我需要正确的导入语句来解决这个问题 根据文档用于AndroidJUnit4 http developer android com reference android support test runner AndroidJUnit4 h
  • Android:是否有一种简单的方法可以为视图创建圆角,而不必每次都创建单独的可绘制对象?

    我在互联网上浏览了各种解决方案 这些解决方案使我们能够创建带有圆角的视图 其中大多数需要使用创建自定义视图 或者每次我们需要圆角视图时都需要在 xml 或九个补丁中创建可绘制对象 问题是 当我实现此类视图时 我需要为每个此类视图创建一个可绘
  • Flutter - 每次应用程序重新启动后保留变量的值

    在我的一页上 我希望我的用户从一个变量上的默认文本开始 codeDialog 然后我希望他们更改该文本 之后他们编写的文本将成为我的新默认文本 遗憾的是我无法让它发挥作用 现在 当我重新启动应用程序并打开该屏幕时 它会重置为null 我认为
  • android widget 和 localservice 绑定

    我编写播放器 它的主要活动是运行本地服务 我找不到如何将本地服务绑定到小部件 当我尝试像在活动中一样绑定它时 它失败了 请帮助我 添加 1 何时可以联系后台服务 http www developer com ws data article
  • Android 构建签名 APK 时出错:找不到用于签名配置“externalOverride”的 keystore.jks

    当我尝试构建签名 APK 时出现此错误 我最近升级到 API 23 但之后成功生成了 APK s 我很困惑 寻求帮助并建议如何解决这个问题 这是错误 FAILURE Build failed with an exception What w
  • 安卓市场。 Google Checkout 和银行帐户

    请原谅 这不是一个编程问题 但它仍然与软件开发有关 所以我希望它没问题 为付费应用创建 Android 开发者帐户意味着注册一个 GoogleCheckout 帐户 这又意味着将其链接到来自这 31 个符合条件的国家 地区之一的银行帐户 有
  • 方法不必要地被调用?

    我有一个 BaseActivity 它可以通过其他所有活动进行扩展 问题是 每当用户离开 暂停 活动时 我都会将音乐静音 我也不再接听电话 问题是 onPause每当用户在活动之间切换时就会被调用 这意味着应用程序不必要地静音和停止tele
  • FragmentTransaction 动画滑入顶部

    我试图使用 FragmentTransaction setCustomAnimations 实现以下效果 片段A正在显示 将片段 A 替换为片段 B 片段 A 在替换过程中应保持可见 片段 B 应从右侧滑入 片段 B 应滑入片段 A 的顶部
  • 无法从后台服务通过 WiFi 访问互联网

    我将直接介绍我发现的一些事实 数据 如果您遇到 解决了类似的问题 请帮助我 我每 5 分钟向服务器发送一次数据 除非用户在服务器的帮助下手动将其关闭 wakeful broadcast receiver通过一个intent service
  • Android Mockito.verify 说参数不同!打印相同内容

    情况 我有一个界面Tracker其中有这个方法 fun trackEvent event String args Bundle null 我想验证是否使用特定的调用此方法event 被测试的内部对象调用此方法Bundle目的 所有事件都指定
  • CheckedTextView 的中心文本和复选标记

    我实现的布局如下图所示 我使用的代码是
  • Android Lollipop BLE 扫描 - 获取没有重复的外设

    Android Lollipop 引入了一种扫描 BLE 外设的新方法 通过蓝牙扫描仪 http developer android com reference android bluetooth le BluetoothLeScanner
  • Android - 测试另一个活动是否已开始

    我正在尝试测试以下场景 在自动完成文本视图中输入一个字母 向下滚动并选择其中一个选项 然后单击一个按钮 单击按钮将启动一个新活动 我想检查新活动是否已经开始 这是测试方法 public void testSpinnerUI mActivit
  • 在 PHP 中设置通知的 FCM 通道 ID

    我正在尝试使用 PHP 向 Android 设备发送 FCM 通知 我的代码适用于 Android O 之前的设备 在Android O中 我们还需要在请求中设置通道ID来接收通知 我不知道该怎么做 我已在应用程序中完成了必要的设置 并使用
  • 有没有办法模拟小部件或屏幕特定位置的触摸?

    我想触摸或点击小部件上的某处 而不让用户在此时明确触摸屏幕 有什么办法可以做到吗 我已经检查了SO答案 有些人建议使用 集成测试 但在未物理或以某种方式连接到笔记本电脑的设备上无法执行 集成测试 无法找到更好的措辞 我还尝试进行 hitTe
  • Android 在通话期间播放音频文件[重复]

    这个问题在这里已经有答案了 对于我的 Android 应用程序 我想在从应用程序接听电话后播放音频文件 应用程序将发起电话呼叫 一旦接收者接听电话 应用程序应开始播放录制的音频文件 通过在谷歌上进行大量搜索 我发现这对于未root的设备来说
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • 从 Android 中的过渡动画中排除 BottomNavigation

    我一直在四处寻找 但找不到有助于解决这个特定问题的答案 我的应用程序有一个自定义滑入 滑出效果 如下所示 Intent intent new Intent getApplicationContext MyActivity class sta

随机推荐

  • 选择相邻同级而不插入文本节点

    由于悲惨的情况 我收到这样的 HTML p Perform the following commands code gt cd foo code code gt adb shell code code ps code p 我需要使代码看起来
  • 使用 Spring Data JPA 选择一列

    有谁知道如何使用 Spring Data JPA 获取单个列 我在 Spring Boot 项目中创建了一个如下所示的存储库 但总是得到 cause null message PersistentEntity must not be nul
  • 我可以在没有循环的情况下清理 numpy 数组吗?

    也许没什么大不了的 但遵循以下内容让我心碎 deltas data 1 data 1 有了这个 for i in range len deltas if deltas i lt 0 deltas i 0 if deltas i gt 100
  • 我的自定义 SSL 验证逻辑处理异常 RemoteCertificateNameMismatch 的安全性如何?

    我尝试将文件上传到我的域https vault veodin com https vault veodin com 托管在 webfaction com 当您打开此网址时 浏览器会警告您名称不匹配 因为 SSL 证书是为 webfactio
  • Ruby:使用 class_eval 定义常量只能通过 const_get 找到,但不能直接通过 :: Lookup 找到

    给定一个 User 类 class User end 我想使用定义一个新常量 class eval So User class eval AVOCADO fruit 如果我尝试通过访问它User AVOCADO I get uninitia
  • 分别处理spark中的多个目录

    我在 HDFS 中有一个目录列表 每个目录包含多个文件 我的目标是将一个目录中的所有文件合并为一个文件 但每个目录分别合并 在 Spark 中执行此操作最快的方法是什么 顺序迭代所有目录太慢 所以我想并行进行 一种解决方案可能是使用线程池
  • Java 8 流过滤:IN 子句

    List
  • 自动滚动图库小部件

    我需要实现一个画廊 它一次滚动一个项目 并且可以执行 自动滚动 即每隔几秒钟 它会自动滚动到下一个项目 根据这个线程 Android 以编程方式在图库小部件中的图像之间设置动画 https stackoverflow com questio
  • Zend Framework 路由:.html 扩展名

    我知道我以前见过这样做 但我在任何地方都找不到信息 我需要能够在 Zend Framework 中使用 html 扩展名进行路由 IE controller action html 应路由到适当的控制器 操作 我们有一个想法 用 htacc
  • 形成两个列表并集的最简单方法

    将两个列表 例如 A 和 B 的元素相互比较 并且仅当 A 中不存在时才将 B 中存在的元素添加到 A 中 最简单的方法是什么 为了显示 取列表 A 1 2 3 列表 B 3 4 5 所以在 AUB 手术之后我想要 列表 A 1 2 3 4
  • 使用装箱值类型作为锁定语句的锁是否安全?

    的文档lock https learn microsoft com en us dotnet csharp language reference keywords lock statement声明非常简单 lock x Your code
  • Spring集成MQTT发布订阅多个主题

    我正在尝试构建一个订阅多个 mqtt 主题的应用程序 获取信息 处理它并形成 xml 并在处理时触发一个事件 以便这些可以发送到某个云服务器 并将成功的响应从那里发送回MQTT 通道
  • Safari 中的 CSS 动画延迟错误

    我最近在 Safari 中遇到了一些与 CSS 动画有关的奇怪行为 并且在操作 DOM 时无法更新元素位置 我拍了一些 GIF 来说明这一点 在 Chrome 中 http recordit co cCim1IwyMc http recor
  • 折叠时,条子标题从中心向左颤动

    我的目标是遵循我的设计 受到三星天气的启发 但是当您刚开始学习时 实现代码很困难 展开时标题应居中 折叠时标题应保留在左上角 到目前为止 这是我的代码和我当前的进度 棘手的部分是将标题移到中心 Scaffold backgroundColo
  • 如何为角度 2/4 中的动画状态指定类名称?

    我正在使用 4 1 3 版本的角度动画 下面是代码 Component selector my fader animations trigger visibilityChanged state true style opacity 1 tr
  • :expire_after 时间结束后,Rails 会话会发生什么?

    会话会变为零吗 更改仅在下一次请求时生效吗 我想我现在只问了三个问题 您可以尝试使用类似的设置进行探索 AppName Application config session store cookie store key session ke
  • register_shutdown_function() 仍然输出原始错误消息

    我正在尝试用自定义函数替换内置的 php shutdown function 它工作得很好 但是 它仍然在我的新错误消息上方输出原始错误 内置错误
  • ASP.NET 中的基本页面

    您是否建议在 Visual Studio 中创建的每个网站中创建一个基本页面作为父类 确切的优点 缺点是什么 如果您想重写 ASP NET 中某些内容的工作方式 将其构建到基类中比在每个页面中包含代码会更有效 我这样做的两个具体实例是 是否
  • Azure Functions 数据库连接字符串

    如何添加或访问app configAzure 函数中的文件添加数据库连接字符串 如果你不应该添加app config并且有更好的方法来访问外部数据库来执行该功能 请让我知道最佳实践 谢谢 Jan V almost钉住了它 这促使我在loca
  • Retrofit 是否在主线程上进行网络调用?

    我正在尝试在 Android 上探索 Retrofit OkHttp 这是我在网上找到的一些代码 RestAdapter restAdapter new RestAdapter Builder setExecutors executor e