如何确保再次显示应用程序(从后台启动或启动)时仅调用一次我的表数据函数?
也就是说,我希望在用户单击应用程序图标时刷新我的表数据,并且只刷新一次。因此要求是:a)在用户单击应用程序图标后仅调用一次控制器中的更新方法 b)无论用户是否(i)第一次启动应用程序,(ii)从后台返回都有效, (iii) 请求应用程序的用户的任何其他方式回到前台。
我目前在实现中遇到的问题是,在应用程序从后台返回的情况下,数据更新被调用了两次,所以我基本上想对此进行改进。我目前正在做的有缺陷的方式是:
- (void)updateEventData {
// UPDATE CODE HERE
}
- (void)becomeActive:(NSNotification *)notification {
[self updateEventData];
[self.tableView reloadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self updateEventData];
// Auto Refresh Data - Handle Case where App becomes active from background & you want to refresh data
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(becomeActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
}