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

时间:2011-08-03 08:45:25

标签: iphone objective-c ios

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

这些步骤:

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

我找到了如下方法:

- (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:

我该怎么做?

2 个答案:

答案 0 :(得分:1)

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

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

在(applicationWillResignActive)

中设置计时器

答案 1 :(得分:0)

我认为您的应用在后台进行某种工作 - 否则首先不需要在后台运行它。

我进一步假设你有某种类型的runloop,因为你想在一段时间后终止,而不是在完成某项任务之后终止。

因此,我建议在应用程序进入后台时记录系统时间,然后在每次迭代时在runloop中检查当前系统时间。如果它大于初始时间+ 2分钟,则终止后台活动。