【问题标题】:Ion library and async operations离子库和异步操作
【发布时间】:2015-01-08 00:58:26
【问题描述】:

我在我的应用程序中使用 ion 库进行网络操作。 (https://github.com/koush/ion) 我对此有疑问。我正在使用 ion 从我的服务器下载数据,并且在onComplete 方法中我将这些数据保存到应用程序数据库。我需要为这个数据库操作使用一个新线程吗?

【问题讨论】:

    标签: android android-ion


    【解决方案1】:

    ion 默认情况下会在 UI 线程上调用回调。不推荐在ui线程上做db操作。

    如果您在 ion 请求期间使用 .handler(null) ,它将在 ion 使用的网络 i/o 线程上调用回调,您可以使用该线程执行 db 操作。如果 db 操作耗时过长,则会阻塞其他网络操作。用起来没问题,只要不是太长,而且不会出现 UI 卡顿。

    或者,使用后台线程,或者最好是专门用于数据库操作的 Looper,在请求构建期间将 Handler 对象提供给处理程序方法。

    【讨论】:

    • 不,您希望回调包含异步任务。 doInBackground 将立即返回,因为 ion 是异步的。
    • 你有什么建议?
    • 你能给 handler 举个小例子吗?我知道处理程序,但我不明白在这种情况下如何使用。
    • 谢谢@koush,只有 1 条评论,那个方法是 '.setHandler(null)' 我们可以在 '.load(...)' 之后做这个
    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多