我已经集成了计步器,当应用程序在后台时我正在做一些计算。但在 180 秒后,我的应用程序被 Apple 操作系统强行终止。有没有办法让定时器运行超过 180 秒。
Best Answer-推荐答案 strong>
如果您关心时间并且想在指定的时间间隔后确切知道时间,我建议您不要使用计时器,而是在您想要的时间间隔之后注册一个带有触发日期的本地通知。
如果您需要在后台执行较长的任务,则必须以这种方式将其注册到系统调用 beginBackGroundTaskWithExpirationHandler 方法:
- (void)applicationDidEnterBackgroundUIApplication *)application
{
bgTask = [application beginBackgroundTaskWithName"MyTask" expirationHandler:^{
// 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;
});
}
您也可以引用这里的链接:BackGroundTask
关于ios - 如何在后台运行 NSTimer 超过 180 秒?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39695010/
|