我已经集成了计步器,当应用程序在后台运行时我正在做一些计算。但是180秒后,我的应用程序被Apple OS强行终止。有什么办法可以运行计时器超过180秒。

最佳答案

如果您担心时间并希望在指定的时间间隔后知道确切的时间,我建议您不要使用计时器,而是在所需的时间间隔后注册带有火灾日期的本地通知。

如果您需要在后台执行较长的任务,则必须通过以下方式向系统调用beginBackGroundTaskWithExpirationHandler方法进行注册:

    - (void)applicationDidEnterBackground:(UIApplication *)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/

10-09 06:31