我正在开发一款针对iOS 3.2的iPad应用程序(所以每个人都可以运行它),当用户按下Home按钮时,应用程序会获得applicationWillTerminate:消息,并在退出之前将使用数据发送到服务器
一切正常。但是如果退出并在应用程序退出之前重新启动应用程序,它似乎会崩溃。
当您收到applicationWillTerminate:消息后,应用程序退出时您需要清理5秒钟,但该应用程序会立即从设备中消失,从而使用户有机会再次启动它。
我认为正在发生的事情是,他们只是在应用程序退出之前重新激活应用程序,因此他们只是在实际退出之前跳回应用程序的第一个实例。所以应用程序的第二个实例似乎崩溃了。
没有崩溃日志,并将日志消息放入应用程序:didFinishLaunchingWithOptions:从第二次启动应用程序时,不会在控制台中生成任何日志。这就是为什么我很确定它实际上并没有创建第二个实例,只是重新进入第一个几乎完成退出的实例。
那么有没有关于如何避免这种情况的想法?看起来很奇怪你在退出时有5秒的时间来执行操作,但结果会发生这种奇怪的行为。
我担心问题的一部分是该应用程序的目标是iOS 3.2并且实际上在按下HOME按钮时退出,如果它刚刚进入后台,这不会是一个问题。可悲的是,此刻改变这种行为不是一种选择。