我想在後臺線程中運行進程。我希望該過程在60秒內完成並重新開始運行。無論應用程序在前臺還是後臺。我不知道如何實施和在哪裏實施它。我正在使用ios7。在這個過程中,我也在進行位置更新。如何在後臺線程連續運行一個進程在nos中每n秒
我閱讀了後臺任務,但沒有給出正確的流程概念。有人可以爲我提供良好的來源或鏈接嗎?
我想在後臺線程中運行進程。我希望該過程在60秒內完成並重新開始運行。無論應用程序在前臺還是後臺。我不知道如何實施和在哪裏實施它。我正在使用ios7。在這個過程中,我也在進行位置更新。如何在後臺線程連續運行一個進程在nos中每n秒
我閱讀了後臺任務,但沒有給出正確的流程概念。有人可以爲我提供良好的來源或鏈接嗎?
有通過IOS爲不同於機器人後臺進程,其使用給定的服務爲that.You可以使用連續的後臺進程計時器沒有這樣的API。也有dispatch_async,選擇在背景用於有效後臺處理。
希望這會有所幫助。
好的很好,我將實現使用dispatch_async,選擇器在後臺,但當應用程序進入後臺該怎麼做。請告訴我 –
你可以使用這樣的背景處理,但記住蘋果已經把限制10-15分鐘來完成處理。
UIApplication* app = [UIApplication sharedApplication];
task = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:task];
task = 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.
NSLog(@"Started background task timeremaining = %f", [app backgroundTimeRemaining]);
if (connectedToNetwork) {
// do work son...
}
[app endBackgroundTask:task];
task = UIBackgroundTaskInvalid;
});
你也可以檢查以下內容:
**BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskingSupported)])
backgroundSupported = device.multitaskingSupported;**
這不是一個長期運行的任務。任務應在60秒內完成並重新開始。它應該在前景和背景中連續運行,即每60秒任務應該完成並重新開始。請幫助我。 –
您需要首先檢查應用程序是在後臺還是在前臺,如果在後臺,然後放置上面的代碼,並且如果在前臺可以使用任何你喜歡的.Exp:定時器,選擇器線程,GCD。 –
然後如何連續運行該過程不僅僅是10或15分鐘。 –
你想這個後臺進程_do_什麼? – jrturton
我需要比較幾件事情與我的數據庫,並在設備位置 更新在該過程中完成。 –
請提供一些代碼,只是在前臺和後臺連續打印一些日誌。 –