我想在几分钟后终止应用程序,而它在后台运行。
这些步骤:
按主页按钮,然后在后台运行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:
我该怎么做?
答案 0 :(得分:1)
10分钟后,所有应用终止。
如果您必须在2分钟后退出应用程序,
在(applicationWillResignActive)
中设置计时器答案 1 :(得分:0)
我认为您的应用在后台进行某种工作 - 否则首先不需要在后台运行它。
我进一步假设你有某种类型的runloop,因为你想在一段时间后终止,而不是在完成某项任务之后终止。
因此,我建议在应用程序进入后台时记录系统时间,然后在每次迭代时在runloop中检查当前系统时间。如果它大于初始时间+ 2分钟,则终止后台活动。