我想在几分钟后终止应用程序,而它在后台运行

我想在几分钟后终止应用程序,而它在后台运行。

像这样的步骤:

按主页button,然后在后台运行应用程序。 2分钟后,应用程序自动终止。

我find一个方法如下:

- (void)applicationDidEnterBackground:(UIApplication *)application { UIApplication* app = [UIApplication sharedApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app 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. //============================ // here i want to add a timer //============================= [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }); } 

如你所见,我想在那个地方添加一个计时器。

但计时器不能在后台工作。 我也试过了performSelector:afterdelay:

我怎样才能做到这一点?

10分钟后,所有的应用程序终止。

如果您必须在2分钟后退出应用程序,

在(applicationWillResignActive)中设置定时器

我想你的应用程序在后台进行某种工作,否则不需要在后台运行它。

我进一步假设你有一些runloop去,因为你想在一定的时间后终止,而不是一些任务完成后。

所以我build议在应用程序进入后台时logging系统时间,然后在您的runloop中检查当前系统时间,每次迭代一次。 如果大于初始时间+ 2分钟,则终止后台活动。