我正在尝试做一项看似简单的任务。当用户将我的应用程序发送到后台时,我想让NSLog说“应用程序发送到后台”。我正在尝试使用像What's the best way to detect when the app is entering the background for my view?这样的NSNotificationCenter,但我无法让它工作。
当用户将应用程序发送到后台时,是否无法立即执行操作?任何帮助都会很棒!
谢谢!
答案 0 :(得分:2)
您可以在
的方法中使用NSLog- (void)applicationDidEnterBackground:(UIApplication *)application
您的AppDelegate.m文件。
您可以在哪里发送任何任务的NSNotification。当应用在后台时,您无法执行任何任务。
答案 1 :(得分:1)
您需要在AppDelegate
中实施以下方法:
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"app sent to background");
}
Apple的文档:
此方法的实现大约需要五秒钟 执行任何任务并返回。如果您需要额外的时间来执行 任何最终任务,您都可以从中请求额外的执行时间 系统通过调用beginBackgroundTaskWithExpirationHandler:。
答案 2 :(得分:0)
您可以在iOS7之前进行10分钟的后台活动,例如将某些内容保存到您的服务器,但为了在后台活动即将关闭时结束,您需要在- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationDidEnterBackground:(UIApplication *)application
{
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
// Clean up any unfinished task business by marking where you
// stopped or ending the task outright.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
// Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task, preferably in chunks.
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
摘要是