2014-02-20 4 views
0

알았어, 이것에 대한 답변을 얻지 못했습니다. :(배경 IOS에서 실행 간격 출력 7

Multipeer Connectivity audio streaming stop work on background

무엇에 대해?

난 배경에이 코드를 실행하기 위해 노력하고있어. 물론

- (void)applicationDidEnterBackground:(UIApplication *)application { 

    __block UIBackgroundTaskIdentifier bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }]; 


    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 

     NSTimer *aTimer = [NSTimer timerWithTimeInterval:3 
                target:self 
               selector:@selector(showInformation) 
               userInfo:nil 
               repeats:YES]; 

     [[NSRunLoop mainRunLoop] 
      addTimer:aTimer 
      forMode:NSDefaultRunLoopMode]; 

     [application endBackgroundTask:bgTask]; 
     bgTask = UIBackgroundTaskInvalid; 
    }); 

} 

내가 같은 범위에 정의 된이 기능을 되 잖아

- (void) showInformation { 
    NSLog(@"showInformation is called."); 
} 

하지만 배경에 앱을 배치하면 간격 작업을 중단하고 전경으로 돌아올 때 작업을 계속합니다 ........

이 수단은 백그라운드에서 실행되지 않습니다.

이것이 가능합니까? 아니면 바보 같은 일을하려고합니까?

정말 도움이됩니다.

고마워요.

답변

1

코드 작동 여부에 관계없이 UIBackgroundModes가 앱 (VOIP, 위치 서비스, 오디오 ..)에 설정되어 있지 않으면 iOS에서 잠시 (> 10 분) 후에 백그라운드 작업이 종료됩니다.

백그라운드 실행 확인에 대한 자세한 내용은 Background Execution and Multitasking입니다.

iOS7의 또 다른 옵션은 Background Fetch이지만 시간 경과에 따른 제어 권한이 없습니다 (iOS에서 사용하는 스마트 타이머가 있음).

더 나은 이해를 위해 Raywenderlich의 Background Modes in iOS Tutorial을 확인하십시오.

그리고 당신은 뭔가 작업을해야하는 경우 아래의 확인 SO 게시물 :

How do I get a background location update every n minutes in my iOS application?

Running iOS App in background for more than 10 minutes

Will iOS launch my app into the background if it was force-quit by the user?

+0

이 좋아, 내가 이해, 나를 위해 작품을 모두이 게시물을 읽고되지 않았습니다 ,이 10 분 작동하지,이 백그라운드에서 실행 절대, 나는 VOIP, 더 이상 아이디어를 사용할 수 있습니까? 감사합니다 –

+0

OK 남자 나는 당신의 시간을 절약하고 싶었다;), VoIP는 나를 위해 잘 작동하지만, 귀하의 애플 리케이션은 VOIP되어야하거나 거부되면,이 솔루션은 당신을 위해 일해야한다 http://stackoverflow.com/a/4808049/1262634 – null

+0

VOIP 백그라운드 모드로 코드를 실행하면? 백그라운드 모드에서 출력을 수신합니까? ..... –