2012-10-09 29 views
0

我想知道當應用程序處於前臺時如何處理來電,短信等中斷。我讀了蘋果文檔,它說應用程序會暫時進入非活動狀態,即。 'applicationWillResignActive'函數將被調用。而像停止計時器,週期性任務和運行元數據查詢等事情應該執行,並且當它回到活動狀態時,這些任務也必須被禁用。當他們說定時器和定期任務時,他們指的是什麼樣的任務。我們如何才能明智地建立這些編碼。任何幫助將不勝感激。感謝處理IOS應用程序開發中的中斷

回答

1

是,接收暫時中斷時,從UIApplication的下列方法被調用 [Apple's documentation]

- (void)applicationWillResignActive:(UIApplication *)application 

它們與定時器和週期性任務指任務是這幾樣正在與週期執行計時器。例如,您可以在後臺運行一個計時器來更新視圖的內容。然後,當應用程序將退出活動狀態時,您應該停止該計時器。

例如,假設您正在運行的定時器來執行任務,每10秒:

// AppDelegate.m 

// When application becomes active the timer is started 
- (void)applicationDidBecomeActive:(UIApplication *)application { 

    self.timer = [NSTimer scheduledTimerWithTimeInterval:10.0 
                target:self 
               selector:@selector(scheduledTask:) 
               userInfo:nil 
               repeats:YES]; 
} 

// When the application will resign active the timer is stopped 
- (void)applicationWillResignActive:(UIApplication *)application { 

    [self.timer invalidate]; 
    self.timer = nil; 
} 

計劃任務將是:

- (void)scheduledTask:(NSTimer *)timer { 

    // Up to you... for instance: web service call 
} 
+0

與代碼片段的例子會更好地服務。無論如何感謝 – clint

+0

示例添加到問題。如果有用,請投票:-) – atxe