浏览代码

VLCActivityManager: add main thread guard

(cherry picked from commit 5c209d95174cb59f56711d81bddd351151c10867)
Felix Paul Kühne 7 年之前
父节点
当前提交
f0af4feeee
共有 1 个文件被更改,包括 20 次插入0 次删除
  1. 20 0
      Sources/VLCActivityManager.m

+ 20 - 0
Sources/VLCActivityManager.m

@@ -35,6 +35,11 @@
 
 - (void)activateIdleTimer
 {
+    if (![NSThread isMainThread]) {
+        [self performSelectorOnMainThread:@selector(activateIdleTimer) withObject:nil waitUntilDone:NO];
+        return;
+    }
+
     _idleCounter--;
     if (_idleCounter < 1)
         [UIApplication sharedApplication].idleTimerDisabled = NO;
@@ -42,6 +47,11 @@
 
 - (void)disableIdleTimer
 {
+    if (![NSThread isMainThread]) {
+        [self performSelectorOnMainThread:@selector(disableIdleTimer) withObject:nil waitUntilDone:NO];
+        return;
+    }
+
     _idleCounter++;
     if ([UIApplication sharedApplication].idleTimerDisabled == NO)
         [UIApplication sharedApplication].idleTimerDisabled = YES;
@@ -49,6 +59,11 @@
 
 - (void)networkActivityStarted
 {
+    if (![NSThread isMainThread]) {
+        [self performSelectorOnMainThread:@selector(networkActivityStarted) withObject:nil waitUntilDone:NO];
+        return;
+    }
+
     _networkActivityCounter++;
 #if TARGET_OS_IOS
     if ([UIApplication sharedApplication].networkActivityIndicatorVisible == NO)
@@ -63,6 +78,11 @@
 
 - (void)networkActivityStopped
 {
+    if (![NSThread isMainThread]) {
+        [self performSelectorOnMainThread:@selector(networkActivityStopped) withObject:nil waitUntilDone:NO];
+        return;
+    }
+
     _networkActivityCounter--;
 #if TARGET_OS_IOS
     if (_networkActivityCounter < 1)