Cordova在iOS中显示“THREAD WARNING:[您的功能]花了[n] ms。”的警告

时间:2015-05-25 05:47:24

标签: ios thread-safety cordova-plugins background-thread cordova-3.8.0

 "THREAD WARNING: ['Console'] took '81.661865' ms. Plugin should use a  background thread."

运行 iOS Phonegap 项目时。类似地,对于一些剩余的插件,如地理位置和文件系统。

由于我是Phonegap的新手,可以请任何人告诉我如何在后台线程上运行该插件。

我也检查了this

我们可以忽略此线程警告,还是与iOS Phone-gap中的内存问题相关

感谢

2 个答案:

答案 0 :(得分:6)

根据this。解决了我的警告问题

我发现警告可以忽略。但这可以通过使用此循环添加后台线程来解决:(在CDVLogger.m中)

 [self.commandDelegate runInBackground:^{

    //add your code here
 }

现在这看起来如下控制台警告:

- (void)logLevel:(CDVInvokedUrlCommand*)command
 {
   [self.commandDelegate runInBackground:^{
   id level = [command argumentAtIndex:0];
   id message = [command argumentAtIndex:1];

  if ([level isEqualToString:@"LOG"]) {
    NSLog(@"%@", message);
  } else {
      NSLog(@"%@: %@", level, message);
   }
 }];
}

答案 1 :(得分:1)

另外,

如果有人正在寻找一种方法来运行Geolocation插件作为iOS Cordova的后台线程,那么就可以修复GitHub。

它删除了Xcode输出警告:"线程警告:[' Geolocation']采取了X' X'女士。插件应该使用后台线程。"

从这里下载插件: https://github.com/guillaumedev/cordova-plugin-geolocation

Heres什么改变了(添加了runInBackground): https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225

有关Cordova线程的更多信息: https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html#threading