当应用程序变为活动状态时,我正在使用 UIApplicationDidBecomeActiveNotification 刷新我的表格视图。 我的问题是,在我的 ViewWillAppear 中,我还调用了一个方法来刷新该表的数据。
这导致应用程序启动时表刷新两次。 当应用程序最初启动时,如何才能让其中一个不触发? 刷新表格需要对网络和本地数据进行一些密集处理。所以我真的希望只执行一次此操作。
谢谢。
您需要使用 UIApplicationWillEnterForegroundNotification 而不是 UIApplicationDidBecomeActiveNotification。
后者会在您的应用程序每次激活时发布(首次启动、通话/短信中断后返回应用程序等)。但前者仅在从后台唤醒的情况下发布。请注意,在这种情况下,不会调用 viewWillAppear (乍一看应该是这样)。
一种方法是使用一个标志,您可以在
didFinishLaunching
中设置该标志,因为每次启动仅执行一次。