当应用在后台运行时,我的应用不会更新来自网络服务的信息。
-(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];
}
如果应用程序可见而不是一切顺利,只要它被放入后台,它就不会更新数据,直到我再次将应用程序带到前台。
对导致此问题的任何想法或建议?
非常感谢。
答案 0 :(得分:0)
为了节省iOS设备上的资源,操作系统不会更新/绘制不可见的UIView。
此外,除非您的应用程序请求权限,否则您的应用将在后台暂停。
来自Apple文档The View Drawing Cycle
根据需要查看绘图。首次显示视图时,或者由于布局更改而使全部或部分视图可见时,系统会要求视图绘制其内容。