我的在线广播应用正在播放背景音乐。当用户听音乐并退出应用程序(进入背景)以查看其他位置时,我将GKSession拆除。这是P2P模式。当用户返回到应用程序时,我重新连接了GKSession。

这是对的吗?如果打来电话或发生其他干扰该怎么办?还杀死GKSession并重新创建?

NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];

    // Register for notifications when the application leaves the background state
    // on its way to becoming the active application.
    [defaultCenter addObserver:self
                      selector:@selector(setupSession)
                          name:UIApplicationWillEnterForegroundNotification
                        object:nil];

    // Register for notifications when when the application enters the background.
    [defaultCenter addObserver:self
                      selector:@selector(teardownSession)
                          name:UIApplicationDidEnterBackgroundNotification
                        object:nil];

最佳答案

您做对了。当您的应用程序处于后台模式时,所有线程都将被挂起,包括GKSession

当您的应用处于“非 Activity ”模式(例如,被电话打扰等)时,GKSession仍然有效。无效表示该应用仍在前台运行,但未收到事件。

关于iphone - 如何正确处理GKSession的中断?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13499438/

10-10 09:59