知道应用程序是否在WillResignActive中移动到后台?

时间:2014-01-16 12:24:09

标签: ios background

是否可以知道WillResignActive是将播放器移至后台还是打开控制/消息中心?

1 个答案:

答案 0 :(得分:0)

如果您的应用已移至后台,则还会发送DidEnterBackground消息。您可以在WillResignActive之后的一小段延迟后查看是否已发送这两封邮件。

编辑:检查此代码

@interface HSAppDelegate ()
{
    BOOL _enteredBackground;
}

@end

@implementation HSAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    _enteredBackground = NO;
    _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    _window.rootViewController = [HSViewController new];
    [_window makeKeyAndVisible];

    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    dispatch_async(dispatch_get_main_queue(), ^{
        if (!_enteredBackground)
        {
            // Do whatever you want here.
        }
        else
        {
            // This won't get called until the app comes back to foreground.
        }
    });
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    _enteredBackground = YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
    _enteredBackground = NO;
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

@end