티스토리 뷰

* 백그라운드 모드 설정을 따로 하지않으면 3분 후에 앱은 비활(suspended)처리가 됨.

3분마다깨워줄 수 있는 게 background tasker.

앱 page에서 -> capabilities -> Background Models 에서 

'audio,airplay and picture in picture'항목을 체크 해 주어야 함(해당 카테고리가 아닌데 이렇게 하면 Reject사유)

 

 

UIBackgroundTaskIdentifier taskId;              ///< 백그라운드 taskId


#pragma mark - background task
/**
 백그라운드 시작을 알리는 함수
*/
- (void)startBackgroundTask
{
    // System 에 background 작업이 필요함을 알림. 작업의 id 반환
    taskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        [[UIApplication sharedApplication] endBackgroundTask:taskId];
        return ;
    }];
}
/**
 백그라운드 끝을 알리는 함수
*/
- (void)endBackgroundTask
{
    [[UIApplication sharedApplication] endBackgroundTask:taskId];
    
    taskId = 0;

}

위와 같이 선언해 두고
[self startBackgroundTask];
// 할일
[self endBackgroundTask];

- (void)start
{
UIBackgroundTaskIdentifier newBgTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
if (bgTaskID != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:bgTaskID];
bgTaskID = UIBackgroundTaskInvalid;
}
}];

if (newBgTaskID != UIBackgroundTaskInvalid) {
[self stop];
bgTaskID = newBgTaskID;
}
}

- (void)stop
{
if (bgTaskID != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:bgTaskID];
bgTaskID = UIBackgroundTaskInvalid;
}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함