检测应用程序从后台打开后何时完成加载

时间:2013-02-16 04:41:17

标签: ios objective-c sleep background-process exit

首次打开我的应用时,加载时间很长,因此我可以显示加载屏幕。当用户通过单击主页按钮退出应用程序然后重新打开它(viewDidLoad / viewDidAppear方法不再被调用)应用程序有另一个加载期间,我猜它正在“醒来” ”

我可以使用哪种方法来检测用户点击主页按钮以将应用程序发送到后台,以及我可以使用哪种方法来检测应用程序是否已从后台恢复?

这应该足以正确提供我的加载屏幕,但只是在案例中。是否还有一种方法可以检测“复兴”后装载何时结束?

2 个答案:

答案 0 :(得分:2)

您可以注册UIApplicationWillEnterForegroundNotification的通知。在那里你可以做你的东西。

- (void)viewDidLoad
{
[super viewDidLoad];

// Register for the notifcation 
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(refreshView) name:UIApplicationWillEnterForegroundNotification object:nil];  

}  

-(void)refreshView
{
/* 
 Invoked when application enters foreground. Do your stuff

 */   

 }  

删除观察者

-(void)dealloc
{
  [[NSNotificationCenter defaultCenter] removeObserver:self];
  [super  dealloc];
}

答案 1 :(得分:2)

Albert你可以检测到在AppDelegate中声明的这两个方法的主页按钮

 - (void)applicationWillResignActive:(UIApplication *)application
 - (void)applicationDidEnterBackground:(UIApplication *)application

这些是您可以使用的通知

[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(setFlag:)
                                             name: UIApplicationWillResignActiveNotification
                                           object: [UIApplication sharedApplication]];


[[NSNotificationCenter defaultCenter] addObserver: self
                                         selector: @selector(setFlag1:)
                                             name: UIApplicationDidEnterBackgroundNotification
                                           object: [UIApplication sharedApplication]];