0

我正在为客户维护一个 iPhone 应用程序。该应用程序不在后台运行(应用程序不在后台运行 = 设置 plist 中的“是”)。但是,当用户暂时中断(例如被电话呼叫)或应用程序存在时,用户需要注销。我目前在 applicationWillResignActive: 中执行此操作。我首先考虑使用 beginBackgroundTaskWithExpirationHandler 但后来注意到返回值始终是“UIBackgroundTaskInvalid”。我认为这是因为我无法在后台运行。那么问题是,我应该如何处理注销?我是否应该使注销同步并希望它按时完成(我猜在 10 秒内?)。

起初我不知道这个 beginBackgroundTaskWithExpirationHandler 没有返回有效的后台任务标识符,并且应用程序正常注销。除了其中一位用户因“超过允许的时间有活动的断言”而不断崩溃(在 iPad 1 上)。

其他人处理过这个问题吗?

4

1 回答 1

0

如果您的应用程序没有后台,那么您需要在提供的-applicationWillTerminate:方法中注销。因为这就是中断或应用程序关闭时将调用的内容。

- (void)applicationWillTerminate:(UIApplication *)application {
/*
 Called when the application is about to terminate.
 Save data if appropriate.
 */

}
于 2012-06-07T02:46:58.197 回答