我已经使用了:
(void)applicationDidEnterBackground:(UIApplication *)application {}
方法,但我无法区分是因为按下主页按钮还是开/关按钮。
提前致谢,
我已经使用了:
(void)applicationDidEnterBackground:(UIApplication *)application {}
方法,但我无法区分是因为按下主页按钮还是开/关按钮。
提前致谢,
对于开/关按钮(或来电或短信):
- (void)applicationWillResignActive:(UIApplication *)application
对于主页按钮:
- (void)applicationDidEnterBackground:(UIApplication *)application
当您在后台进入时applicationWillResignActive
,仍然会在通知的情况下进入。applicationDidBecomeActive
但是有一种方法可以通过获取应用程序的状态来区分,所以在applicationDidEnterBackground
.
- (void)appHasGoneInBackground {
bool inBackground = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground;
// lockScreen state
if (!inBackground) {
// do something
}
}
我的理解是,当您锁定或解锁您的 iOS 设备时,您的应用程序委托将分别调用- (void)applicationWillResignActive:(UIApplication *)application
和- (void)applicationDidBecomeActive:(UIApplication *)application
。锁定和解锁类似于接听电话等中断。通过点击主页按钮将应用程序发送到后台调用不同的方法,即- (void)applicationDidEnterBackground:(UIApplication *)application
和- (void)applicationWillEnterForeground:(UIApplication *)application
。
- (void)applicationDidEnterBackground:(UIApplication *)application {}
当您的应用程序进入后台(主页按钮)和- (void)applicationWillTerminate:(UIApplication *)application
即将关闭时(开/关按钮或 iOS 调用在后台随机时间后关闭)时使用。