菜鸟教程小白 发表于 2022-12-11 17:38:49

ios - 如何在后台运行 NSTimer 超过 180 秒?


                                            <p><p>我已经集成了计步器,当应用程序在后台时我正在做一些计算。但在 180 秒后,我的应用程序被 Apple 操作系统强行终止。有没有办法让定时器运行超过 180 秒。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您关心时间并且想在指定的时间间隔后确切知道时间,我建议您不要使用计时器,而是在您想要的时间间隔之后注册一个带有触发日期的本地通知。</p>

<p>如果您需要在后台执行较长的任务,则必须以这种方式将其注册到系统调用 beginBackGroundTaskWithExpirationHandler 方法:</p>

<pre><code>    - (void)applicationDidEnterBackground:(UIApplication *)application
{
    bgTask = [application beginBackgroundTaskWithName:@&#34;MyTask&#34; expirationHandler:^{
      // Clean up any unfinished task business by marking where you
      // stopped or ending the task outright.
      ;
      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.

      ;
      bgTask = UIBackgroundTaskInvalid;
    });
}
</code></pre>

<p>您也可以引用这里的链接:<a href="https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html" rel="noreferrer noopener nofollow">BackGroundTask</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在后台运行 NSTimer 超过 180 秒?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39695010/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39695010/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在后台运行 NSTimer 超过 180 秒?