Iphone UIBackgroundModes,在临时(或永久)退出时注销

Iphone UIBackgroundModes,在临时(或永久)退出时注销,iphone,ios,background,logout,Iphone,Ios,Background,Logout,我正在为客户端维护一个iPhone应用程序。应用程序不在后台运行(应用程序不在后台运行=设置列表中的“是”)。但是,当用户被临时中断(例如电话)或应用程序存在时,用户需要注销。我目前在applicationWillResignActive:中执行此操作。我首先考虑使用beginBackgroundTaskWithExpirationHandler,但随后注意到返回值总是“UIBackgroundTaskInvalid”。我想这是因为我不能在后台运行。那么问题是,我应该如何处理注销?我应该使注销同

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

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


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

如果你的应用程序没有后台,那么你需要在提供的
-applicationWillTerminate:
方法中进行注销。因为当出现中断或应用程序关闭时,将调用该方法

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

}

applicationWillTerminate:不会因中断(如电话)而被呼叫即使应用程序不支持后台。applicationWillResignActive:也会被调用,但这正是我现在注销用户的地方。它工作正常,只是iPad 1偶尔崩溃,让我担心我在做什么。基本问题是,当你不运行后台模式时,你如何确保用户ets注销?应用程序完成任务需要多长时间,并且此任务必须在UI线程上?