我是 iOS 新手。当我在 iPhone 中按下主页按钮时,应用程序进入挂起模式是我所知道的,在程序中,我如何捕获此事件并清除我的本地数据?友善的建议。
问问题
963 次
4 回答
2
您可以在应用委托中使用以下方法:
- (void)applicationWillResignActive:(UIApplication *)application
Apple 解释了何时调用此委托方法:
当应用程序即将从活动状态变为非活动状态时发送。这可能发生在某些类型的临时中断(例如来电或短信)或当用户退出应用程序并开始转换到后台状态时。
于 2012-05-11T21:11:52.780 回答
1
在您的委托中,将您要调用的代码放入其中。每次后台应用程序时都会触发一个,当您返回时另一个会触发。
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
于 2012-05-11T21:11:04.347 回答
0
如果需要,使用应用程序委托 applicationWillResignActive 方法和 UIBackgroundTaskIdentifier。例如:
- (void)applicationWillResignActive:(UIApplication *)application {
UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
//your cleanup code
}];
}
于 2012-05-11T21:12:33.273 回答
0
虽然您可以实现其他人讨论的 UIApplicationDelegate 方法,但让需要清理的对象注册自己以获取相应的通知通常更方便(并且可以说更干净):
UIApplicationDidEnterBackgroundNotification
UIApplicationWillResignActiveNotification
例如
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(myCleanupMethod:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
(如果你走这条路,不要忘记在观察对象被释放时移除观察者。)
于 2012-05-11T21:16:48.263 回答