在iOS 4.3中,当你按下主页按钮或按下开/关按钮时,我如何区分背景模式?

时间:2011-05-03 15:05:15

标签: iphone ios background mode

我已经使用了:

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

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

提前致谢,

4 个答案:

答案 0 :(得分:3)

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

- (void)applicationWillResignActive:(UIApplication *)application  

对于主页按钮:

- (void)applicationDidEnterBackground:(UIApplication *)application

答案 1 :(得分:1)

applicationWillResignActive的通知中,当您在后台输入时,applicationDidBecomeActive仍然会输入。但是有一种方法可以通过获取应用的状态进行区分,因此请在applicationDidEnterBackground中进行尝试。

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

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

Apple's UIApplication-class reference

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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