在后台运行时,应用程序不会自动更新

时间:2014-03-30 21:33:48

标签: ios iphone objective-c cocoa-touch

当应用在后台运行时,我的应用不会更新来自网络服务的信息。

-(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];

}

如果应用程序可见而不是一切顺利,只要它被放入后台,它就不会更新数据,直到我再次将应用程序带到前台。

对导致此问题的任何想法或建议?

非常感谢。

1 个答案:

答案 0 :(得分:0)

为了节省iOS设备上的资源,操作系统不会更新/绘制不可见的UIView。

此外,除非您的应用程序请求权限,否则您的应用将在后台暂停。

来自Apple文档The View Drawing Cycle

  

根据需要查看绘图。首次显示视图时,或者由于布局更改而使全部或部分视图可见时,系统会要求视图绘制其内容。