2014-03-30 98 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