簡體   English   中英

后台定時任務iOS

[英]Background timed task iOS

我正在開發一個想要每小時進行一次網絡呼叫(同步目的)的應用程序。 即使應用處於終止狀態。 我該如何實現?

沒有任何地方涉及UI更新,我只需要更新本地數據庫和雲存儲文件。

開發人員Apple BackgroundExecution

-(void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{
        // Clean up any unfinished task business by marking where you
        // stopped or ending the task outright.
        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // Do the work associated with the task, preferably in chunks.

        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });
}
if([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)])
{
    __block UIBackgroundTaskIdentifier background_task;
    background_task = [application beginBackgroundTaskWithExpirationHandler:^ {
        [application endBackgroundTask: background_task];
        background_task = UIBackgroundTaskInvalid;
    }];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
        while(YES)
        { 

            [NSThread sleepForTimeInterval:your_sleep_time];

        }
    });
}
else
{
    NSLog(@"Multitasking Not Supported");
}

我們創建了一個新的后台任務,並為其添加了一個新線程,因此您可以自由地休眠線程:)希望對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM