首次打开我的应用程序时,加载时间很长,因此我可以显示加载屏幕。当用户通过单击主页按钮退出应用程序然后重新打开它(不再调用viewDidLoad
/viewDidAppear
方法)时,应用程序有另一个加载期,我猜它正在“唤醒”。
我可以使用什么方法来检测用户点击主页按钮以将应用程序发送到后台,我可以使用什么方法来检测应用程序已从后台恢复?
这应该足以正确提供我的加载屏幕,但以防万一。是否还有一种方法可以检测“复活”后加载何时完成?
首次打开我的应用程序时,加载时间很长,因此我可以显示加载屏幕。当用户通过单击主页按钮退出应用程序然后重新打开它(不再调用viewDidLoad
/viewDidAppear
方法)时,应用程序有另一个加载期,我猜它正在“唤醒”。
我可以使用什么方法来检测用户点击主页按钮以将应用程序发送到后台,我可以使用什么方法来检测应用程序已从后台恢复?
这应该足以正确提供我的加载屏幕,但以防万一。是否还有一种方法可以检测“复活”后加载何时完成?
阿尔伯特你可以检测到主页按钮点击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]];
您可以为 注册通知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];
}