• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:38:49 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已经集成了计步器,当应用程序在后台时我正在做一些计算。但在 180 秒后,我的应用程序被 Apple 操作系统强行终止。有没有办法让定时器运行超过 180 秒。



Best Answer-推荐答案


如果您关心时间并且想在指定的时间间隔后确切知道时间,我建议您不要使用计时器,而是在您想要的时间间隔之后注册一个带有触发日期的本地通知。

如果您需要在后台执行较长的任务,则必须以这种方式将其注册到系统调用 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap