2014-03-30 99 views
0

當應用程序在後臺運行時,我的應用程序未更新Web服務的信息。在後臺運行時,應用程序不會自行更新

-(void)onTick:(NSTimer *)timer { 
    [self parseData]; 
    [self.tableView reloadData]; 

} 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSDate *d = [NSDate dateWithTimeIntervalSinceNow: 60.0]; 
    NSTimer *t = [[NSTimer alloc] initWithFireDate: d 
              interval: 30.0 
              target: self 
              selector:@selector(onTick:) 
              userInfo:nil repeats:YES]; 

NSRunLoop *runner = [NSRunLoop currentRunLoop]; 
[runner addTimer:t forMode: NSDefaultRunLoopMode]; 

} 

如果應用程序是可見的比一切都順利,只要它被投入直到我再次把應用推到前臺它不更新數據的背景。

有什麼想法或建議是什麼導致了這個?

非常感謝。

+3

的可能重複[iOS的:保持應用程序後臺運行(http://stackoverflow.com/questions/10674004/ios-keep-application-running-in-background) – tommyo

回答

0

爲了節省iOS設備上的資源,操作系統不會更新/繪製不可見的UIView。

此外,除非您的應用程序請求權限,否則您的應用程序將在後臺暫停。

從蘋果文檔The View Drawing Cycle

查看圖紙出現需要的基礎上。當第一次顯示視圖時,或者由於佈局更改而全部或部分視圖變爲可見時,系統會要求視圖繪製其內容。

+0

它不只是UIView的,這是一個更廣泛的問題...... – RobP