【问题标题】:The iPhone app closes like an error when I go to home screen and comeback当我转到主屏幕并返回时,iPhone 应用程序像错误一样关闭
【发布时间】:2014-05-13 01:03:10
【问题描述】:

我正在尝试使用 SpriteKit 为 iPhone 编写游戏。几乎一切都很好并且按我预期的那样运行,但唯一的问题是当我测试它以查看如果我回到主屏幕并返回应用程序会发生什么时,我注意到每次我回到应用程序时都会显示它最后一个状态,然后在一秒钟后突然关闭应用程序。 我的应用程序正在使用声音,我注意到如果我删除播放声音动作,一切都很好。声音动作是这样的:

SKAction * playClickSound = [SKAction playSoundFileNamed:@"buttonClick.caf" waitForCompletion:NO];
[self runAction:playClickSound];

有趣的是,如果我的应用程序运行但没有得到运行此操作的目的,那么当我在应用程序和主屏幕之间来回切换时一切正常。有趣的是它在模拟器上似乎没问题,而且这个问题只发生在我在 iPod touch 上运行代码时。 提前感谢您的帮助。

【问题讨论】:

标签: ios xcode5 sprite-kit skaction


【解决方案1】:

所以答案是在应用退出活动时在应用委托中添加禁用AVAudioSession,并在它再次变为活动时再次启用它。 应将此行添加到 AppDelegate.m 文件的顶部:

@import AVFoundation;

并且[[AVAudioSession sharedInstance] setActive:NO error:nil];[[AVAudioSession sharedInstance] setActive:YES error:nil];必须添加到如下函数中:

- (void)applicationWillResignActive:(UIApplication *)application
{
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
}

特别感谢@0x7fffffff 的帮助。

【讨论】:

    【解决方案2】:

    当您的应用因内存压力而在后台终止时会发生这种情况。不幸的是,由于 iOS 7 的新图形“功能”,这种情况现在更频繁地发生,尤其是在旧设备上。

    您应该考虑为您的应用实施状态恢复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-30
      相关资源
      最近更新 更多