0

我已经使用了:

(void)applicationDidEnterBackground:(UIApplication *)application {}

方法,但我无法区分是因为按下主页按钮还是开/关按钮。

提前致谢,

4

4 回答 4

3

对于开/关按钮(或来电或短信):

- (void)applicationWillResignActive:(UIApplication *)application  

对于主页按钮:

- (void)applicationDidEnterBackground:(UIApplication *)application
于 2011-05-03T15:43:27.647 回答
1

当您在后台进入时applicationWillResignActive,仍然会在通知的情况下进入。applicationDidBecomeActive但是有一种方法可以通过获取应用程序的状态来区分,所以在applicationDidEnterBackground.

- (void)appHasGoneInBackground {       
    bool inBackground = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground;

    // lockScreen state
    if (!inBackground) {
        // do something
    }
}

Apple 的 UIApplication 类参考

于 2012-07-09T17:13:28.197 回答
0

我的理解是,当您锁定或解锁您的 iOS 设备时,您的应用程序委托将分别调用- (void)applicationWillResignActive:(UIApplication *)application- (void)applicationDidBecomeActive:(UIApplication *)application。锁定和解锁类似于接听电话等中断。通过点击主页按钮将应用程序发送到后台调用不同的方法,即- (void)applicationDidEnterBackground:(UIApplication *)application- (void)applicationWillEnterForeground:(UIApplication *)application

于 2011-05-03T15:28:55.593 回答
0

- (void)applicationDidEnterBackground:(UIApplication *)application {}当您的应用程序进入后台(主页按钮)和- (void)applicationWillTerminate:(UIApplication *)application即将关闭时(开/关按钮或 iOS 调用在后台随机时间后关闭)时使用。

于 2011-05-03T15:11:37.330 回答