GUI使用uibackgroundmodes = voip,audio

时间:2010-11-03 09:36:22

标签: iphone ios4 uitabbarcontroller multitasking

我有基于tabbar的应用程序。当我放入我的plist UIBackgroundModes(我的应用程序应该支持voip)时,GUI不会加载。它在Splash屏幕上很糟糕,并且不会加载第一个标签视图。当我从info.plist中删除UIBackgroundModes属性时,它工作正常。更重要的是,当它卡住时按下主页按钮什么都不做。有人遇到过类似的问题吗? (模拟器上存在问题)

谢谢,

Nava

4 个答案:

答案 0 :(得分:3)

看起来问题只发生在Simulator上,它可以在设备上运行......所以解决方案(临时的)不是将UIBackgroundModes放入info.plist模拟器版本。

答案 1 :(得分:0)

当您进入和退出后台模式时,您负责加载/卸载界面。在离开背景时,您还需要相应地更新界面。

iOS在将应用程序置于后台并在将应用程序设置为前台(在启动应用程序时有点像Default.png)以及一些UIImage缓存时显示屏幕截图时会有所帮助。

可能值得分享一些代码。

答案 2 :(得分:0)

  

支持背景状态转换
  支持后台状态转换是iOS 4及更高版本中应用程序基础架构的一部分。虽然从技术上讲,支持此功能所需要做的唯一事情就是链接iOS 4及更高版本,正确支持它需要一些额外的工作。具体来说,您的应用程序委托应该实现以下方法并在每个方法中实现适当的行为:

     
      
  • 应用中:didFinishLaunchingWithOptions:
  •   
  • applicationDidBecomeActive:
  •   
  • applicationWillResignActive:
  •   
  • applicationDidEnterBackground:
  •   
  • applicationWillEnterForeground:
  •   
  • applicationWillTerminate:
  •   
     

成为一个负责任的,多任务处理的应用程序
  在后台运行的应用程序比前台应用程序更有限。即使您的应用程序没有在后台运行,在实施您的应用程序时也应遵循一些指导原则。

     
      
  • 不要从代码中进行任何OpenGL ES调用。您不得创建任何类型的EAGLContext对象或发出任何OpenGL ES绘图命令。使用这些调用将导致您的应用程序立即终止。
  •   
  • [...]
  •   

iOS Application Programming Guide

答案 3 :(得分:0)

我也看到了这个错误。这很烦人。这就好像应用程序卡在模拟器中并且不会继续运行。当发生这种情况时,我知道如何“解开”它。

在模拟器中我只是去菜单硬件>锁定然后再次解锁手机。现在我停止调试器并再次启动应用程序。这似乎让它恢复了生机。

幸运的是,这个错误不会发生在真正的手机上,只会发生在模拟器中。