我如何告诉iOS我不希望该应用程序留在后台?

时间:2011-05-25 16:14:22

标签: iphone ios background crash

有没有办法告诉iOS我不希望我的应用留在后台?换句话说,我可以告诉我的应用程序在进入后台时自行退出吗?

我在UITbarController的其中一个标签中使用ABPeoplePickerNavigationController。但是,只要到达[ABMembersViewController applicationDidResume],它就会以EXC_BAD_ACCESS崩溃。

堆栈跟踪:

0x00cc5994  <+0034>  mov    0x8(%eax),%eax
0x00cc5991  <+0031>  mov    0x8(%ebp),%eax
0x00cc598d  <+0027>  mov    %eax,0x4(%esp)
0x00cc5987  <+0021>  mov    0x4e082(%ebx),%eax
0x00cc597f  <+0013>  movl   $0x0,0x8(%esp)
0x00cc597e  <+0012>  pop    %ebx
ABCGetGroupCount
-[ABAccountsAndGroupDataSource hasMultipleAccountsOrGroups]
-[ABMembersViewController updateNavigationButtonsInSearchMode:animated:]
-[ABMembersViewController updateNavigationButtonsAnimated:]
-[ABMembersViewController applicationDidResume]

所以,为了解决它,我认为如果我能够强制应用程序自行终止,我可以很好地阻止程序通过这部分代码。

3 个答案:

答案 0 :(得分:7)

在info.plist中

,将UIApplicationExitsOnSuspend设置为yes

答案 1 :(得分:2)

虽然导致应用程序退出而不是暂停可能会通过隐藏它来解决问题,但您应该正确解决问题,并确保您的应用可以应对暂停。

用户(在支持它的设备上)通常希望应用程序暂停,并且当他们因任何原因切换到另一个应用程序时,可能会惊讶于您的应用程序崩溃(这是他们看起来的样子)。

如果要回到以前的位置,这将特别烦人,比重新启动应用程序需要更多的努力。

继续...你知道这是有道理的......做得好!

答案 2 :(得分:0)

如果没有看到其余的代码,就很难确定问题所在。通常,EXC_BAD_ACCESS表示您尝试将消息发送到已发布的对象。您是否可以在viewWillDisappear或类似方法中发布内容,而不是在viewWillAppear中重新初始化它?