UIBackgroundModes,登出临时(或永久)退出

时间:2012-06-07 02:22:27

标签: iphone ios background logout

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

}