iOS应用程序转到后台并且返回前台时出现问题

时间:2012-10-02 13:44:34

标签: iphone ios ios4

我的应用程序触发iPhone拨号程序并通过App Delegate转到后台。 AppDelegate.m文件中的某处称为:

- (void) applicationDidEnterBackground: (UIApplication *) application
{
    [self terminate];
}

当我完成外部应用程序(拨号程序)后,应用程序再次启动,但大多数GUI部分都没有响应。

响铃吗?我怎么能调试这个问题?如果您需要更多信息,请告诉我。

更有帮助。该应用程序是一个地址簿,每个条目都是可以拨打的,当点击iOS应用程序时。在通话期间,我希望能够打开我的应用程序来浏览信息

2 个答案:

答案 0 :(得分:0)

当你进入后台时,你得到applicationdidEnterBackground,但是当发生这种情况时,你是否试图完全退出你的应用程序?比这更好的是有一个info.plist键,它会告诉操作系统不要进入后台“应用程序不能在后台运行”。这将更优雅地终止你的应用程序。

答案 1 :(得分:0)

我假设你的主要问题是你不考虑被暂停的影响。请看这个问题:iOS 4 resume from background

然后考虑阅读应用状态周期,您可以找到here 在本文中发现的重要事项包括:

  

为了帮助减少应用内存占用,系统会在您的应用移至后台时自动清除代表您的应用分配的部分数据。

     
      
  1. 系统清除所有Core Animation图层的后备存储。此工作不会从内存中删除应用程序的图层对象,也不会更改当前图层属性。它只是防止这些图层的内容出现在屏幕上,因为应用程序在后台不应该发生。
  2.   
  3. 删除对缓存图像的任何系统引用。 (如果您的应用没有对图像的强引用,则会随后将其从内存中删除。)
  4.   
  5. 删除对其他一些系统管理的数据缓存的强引用
  6.   

换句话说,您的应用程序状态可能不是您在后台运行时的状态。这个过程的全部内容太大而不能在这里详细说明,而应该通过Apple提供的文档进行研究,我已将其链接到上面。