android - Cordova /Phonegap : run FileTransfer plugin in background thread

标签 android ios multithreading cordova

我看到一个 Unresolved 老问题:Run PhoneGap FileTransfer in background thread?

有没有关于这个主题的新闻?

我正在使用带有 FileTransfer 插件的 Cordova 3.4.0,当我下载文件时,UI 开始滞后,特别是在 iOS 设备上,加载 gif 一直被卡住

有没有其他插件可以顺利下载文件?

最佳答案

我刚刚查看了文件传输的发行说明。该问题已在最新版本中修复:

0.4.3 (Apr 17, 2014)

... CB-5175: [ios] CDVFileTransfer asynchronous download (Fixes #24) ...

不幸的是,此构建通过不调用成功或失败回调而完全破坏了文件传输下载。参见 https://issues.apache.org/jira/browse/CB-6720?focusedCommentId=14008776&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14008776有关安装最后一个有效版本的说明。

我手动修补了 CDVFileTransfer.m 以包含最新版本的后台线程代码。在下载方法中你需要更换

[delegate.connection start];

// Downloads can take time
// sending this to a new thread calling the download_async method
dispatch_async(
               dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL),
               ^(void) { [delegate.connection start];}

到目前为止,这对我来说一直很可靠,但显然在 Cordova 发布官方修复之前你只能靠自己了。

关于android - Cordova /Phonegap : run FileTransfer plugin in background thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23297255/

相关文章:

java - Spinner 中带有字符串数组的 NullPointerException

ios - 应用程序卡住直到将数据保存到核心数据中

ios - 如何在 Swift 中从不同的 ViewController 重新加载 TableView 中的数据

没有互联网的 iOS 设备无法捕获当前位置

python - 如何在python中控制子线程进程?

javascript - TCP NODE JS 多线程问题

c - 为什么函数返回类型需要是 (void*) 类型才能在 C 中进行线程化?

android - 视频开始后立即暂停 android YouTubePlayer

java - 静态方法中的 TimerTask 在执行之前会被垃圾回收吗?

android:通过 php 连接 mysql(WAMP 设置)- 应用程序崩溃