Кордова показывает предупреждение как "ПРЕДУПРЕЖДЕНИЕ THREAD: [Ваша функция] заняла [n] ms." В iOS
"THREAD WARNING: ['Console'] took '81.661865' ms. Plugin should use a background thread."
При запуске проекта iOS Phonegap. Аналогично для некоторых из оставшихся плагинов, таких как геолокация и файловая система.
Поскольку я новичок в Phonegap, может понравиться, кто-нибудь скажет мне, как я могу запустить плагин в фоновом потоке.
Я также проверил этот.
Можно ли игнорировать это предупреждение о потоке или связано с проблемой памяти в iOS Phone-gap
спасибо
Ответы
Ответ 1
По 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);
}
}];
}
Ответ 2
Также добавить
Если кто-то ищет способ запустить sepcifically плагин Geolocation как фоновый поток с iOS Cordova, есть исправление на GitHub.
Он удаляет предупреждение о выходе Xcode: "THREAD WARNING: ['Geolocation'] взял" X "ms. Плагин должен использовать фоновый поток".
Загрузите плагин отсюда:
https://github.com/guillaumedev/cordova-plugin-geolocation
Вот что изменилось (добавлено runInBackground):
https://github.com/guillaumedev/cordova-plugin-geolocation/commit/8fbceca845441f4f421548f243d2f05573d11225
Дополнительная информация о Cordova Threading:
https://cordova.apache.org/docs/en/dev/guide/platforms/ios/plugin.html#threading