0

我是 iOS 新手。当我在 iPhone 中按下主页按钮时,应用程序进入挂起模式是我所知道的,在程序中,我如何捕获此事件并清除我的本地数据?友善的建议。

4

4 回答 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 回答