【发布时间】:2015-01-08 00:58:26
【问题描述】:
我在我的应用程序中使用 ion 库进行网络操作。 (https://github.com/koush/ion) 我对此有疑问。我正在使用 ion 从我的服务器下载数据,并且在onComplete 方法中我将这些数据保存到应用程序数据库。我需要为这个数据库操作使用一个新线程吗?
【问题讨论】:
标签: android android-ion
我在我的应用程序中使用 ion 库进行网络操作。 (https://github.com/koush/ion) 我对此有疑问。我正在使用 ion 从我的服务器下载数据,并且在onComplete 方法中我将这些数据保存到应用程序数据库。我需要为这个数据库操作使用一个新线程吗?
【问题讨论】:
标签: android android-ion
ion 默认情况下会在 UI 线程上调用回调。不推荐在ui线程上做db操作。
如果您在 ion 请求期间使用 .handler(null) ,它将在 ion 使用的网络 i/o 线程上调用回调,您可以使用该线程执行 db 操作。如果 db 操作耗时过长,则会阻塞其他网络操作。用起来没问题,只要不是太长,而且不会出现 UI 卡顿。
或者,使用后台线程,或者最好是专门用于数据库操作的 Looper,在请求构建期间将 Handler 对象提供给处理程序方法。
【讨论】: