在我的应用程序中,我有一些 NSOperation 从在线数据库更新一些核心数据元素,有时更新需要一些时间,当 iPhone 屏幕锁定时,应用程序进入后台模式,并且此更新停止,所以我有重新打开应用程序以继续更新,所以我在堆栈溢出上搜索了很多,我找到了一些关于:
beginBackgroundTaskWithExpirationHandler
这是来自苹果的一种方法,当应用程序处于后台模式时也可以继续执行某些任务,我已经这样做了:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier bgTask;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];
}
现在应用程序在后台继续执行任务,似乎一切正常,所以我的问题是,我使用的这种方法安全吗?还是有更好的模式?
谢谢