当应用程序进入后台时如何继续运行 NSTimer

2023-12-19

我正在创建益智游戏应用程序,并使用 NSTimer 显示时间(即 01:20)。当应用程序进入后台时,NSTimer 会暂停,但即使应用程序处于后台状态,我也想继续它。

例如当应用程序进入后台时,计时器计数为 15 秒 and I 放置5秒现在我成为前台需要将计时器计数更改为 20 秒

我搜索了很多但没有得到好的答案。 所以请建议我如何实现这一目标。


不要将计时器视为用于计时的对象。可以将其视为以给定频率发出脉冲的物体。要测量时间,请记录开始时间并将其与当前时间进行比较。

要记录开始时间,请将其写入文件,如下所示,可能在appWillResignActive中:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSString *filename = [path stringByAppendingPathComponent:@"saveme.dat"];

NSData * data = [NSKeyedArchiver archivedDataWithRootObject:self.startDate];
[data writeToFile:filename atomically:NO];
// invalidate timer

当应用程序将变为活动状态时:

NSData *data = [NSData dataWithContentsOfFile:filename];    // using the same code as before
self.startDate = [NSKeyedUnarchiver unarchiveObjectWithData:data];
// start a timer for the purpose of pulsing only

此时经过的时间是:

NSDate *now = [NSDate date];
NSTimeInterval = [now timeIntervalSinceDate:self.startDate];

上述所有操作都可以在不后台运行的情况下完成。如果您确实需要一个计时器在后台触发,请参阅此苹果参考 https://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html。在“后台执行”下。简而言之,你可以做到,但苹果会让你在批准该应用程序之前满足几个标准——比如它必须是有限的并为用户提供实用性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当应用程序进入后台时如何继续运行 NSTimer 的相关文章

  • 无法将 (Timer!) -> Void 转换为 ((CFRunLoopTimer?) -> Void)! - 将 NSTimer 扩展转换为 Swift 3

    我正在尝试将我在项目中使用的 Pod 转换为 Swift 3 它不是我编写的 但原作者尚未更新它 所以我将它分叉为我自己尝试的任何内容 但 我在尝试将扩展名转换为NSTimer到斯威夫特 3 Cannot convert value of
  • iphone:使用 iOS 5 和 Xcode 4.2 提交应用程序? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个在
  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • 从现在起测量时间间隔

    任何人都知道或可以提供一些与 timeIntervalSinceNow 方法相关的示例代码 我需要类似的东西 time2 当应用程序进入前台时 time1 当应用程序进入后台时 time3 时间差 这样我就可以使用这个数字 以秒为单位的首选
  • iOS:保持应用程序在后台运行

    如何让我的应用程序在后台运行 我需要越狱我的 iPhone 才能执行此操作吗 我只需要这个应用程序每隔设定的时间间隔从互联网上检查一些内容 并在需要时发出通知 以供我自己使用 是的 不需要越狱 查看本文档的 实现长时间运行的后台任务 部分A
  • Facebook oauth/access_token 丢失

    不知道我是否错过了什么 但就这样 我正在尝试为我的应用程序获取 access token 以便它可以在 facebook 上查找某些公共群组的事件 而无需用户登录 我试图从中获取 access token 这将返回一个字符串 access
  • 使用 Objective-C 在 iPhone 应用程序中显示或隐藏 UIButton

    我在用UITextView编辑文本 我想用两个UIButtons编辑并保存 最初我想显示编辑UIButton 当用户单击编辑时我想显示保存UIButton 当内容成功保存后 我不想再显示保存按钮 我是一名 C 编码员 在 C 中我曾经这样做
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • iOS 开发: [[self navigationController] viewControllers]; 有哪些原因?会返回零吗?

    以下语句返回零 NSArray viewControllersInNavStack self navigationController viewControllers 这个语句是在导航堆栈中大约四层深度的视图控制器中调用的 所以我不明白它如
  • 更改 UITextField 辅助功能描述

    有没有办法将 UITextField 的辅助功能标签设置为 文本字段 之外的其他内容 因此 我不想将其称为 文本字段 而是将其命名为 代码验证字段 我的建议是不要试图在内置语音输出上智取系统 对于盲人用户来说 文本字段正在编辑 相当于 该项
  • SecItemAdd 创建两个身份

    我正在为 iPhone 开发一个应用程序 需要证书来调用某些服务 因此我将证书添加到我的钥匙串中 执行以下操作 SecCertificateRef cert SecCertificateCreateWithData NULL bridge
  • Monotouch 和本机 iOS 代码

    是否可以将使用 monotouch 编译的 C 库与单个应用程序中的 Objective C 前端链接起来 或者该应用程序必须是全部还是全无 这是可能的 但您不会从 MonoTouch 工具获得任何帮助 并且您无法摆脱这样一个事实 您仍然需
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 增加 NSData 的长度

    基本上 我有一个 46 个字符的 NSString 我将其转换为 NSData 我需要将字符串填充到 48 个字符 仅在 NSString 末尾添加 是行不通的 所以 我只是使用以下方法增加了 NSData 的长度 NSString str
  • 为什么 GDB 调试器不断冻结 Xcode 4?

    这真是一个奇怪的错误 我正在开发一个使用相机源的 iPhone 项目 并通过 OpenGL 着色器运行它以对其应用效果 然而 每次我在代码中简单地创建一个新的 GLfloat 时 调试器都会在启动时冻结 我无法复制和粘贴文本 因为整个 XC
  • 如何使导航栏透明并淡出,就像 iPhone 中的照片应用程序一样

    我是 iPhone 编程新手 有人可以帮我吗 我想在iPhone中开发一个类似照片应用程序的应用程序 如何使导航栏和工具栏透明并淡出 就像 iPhone 中的照片应用程序一样 感谢你 UINavigationBar继承自UIView 所以你
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 如何使用 iPhone SDK 加快或减慢背景音乐曲目的速度?

    是否有一种简单的方法来控制使用音频队列服务播放的声音文件循环的播放速度 节奏 例如 如果游戏正在播放背景音乐 我想让BGM随着时间的流逝而加快 但不改变音乐的音调 谢谢 据我所知 没有什么简单的方法可以做到这一点 在 Mac 上 您可能会使
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • 如何检测iPhone是否有视网膜显示屏?

    如何检测 iPhone 是否配备视网膜显示屏 有靠谱的办法吗 要么是纯 PHP 要么最好是 Zend Framework 方式来执行此操作 我通过这个弄清楚了 var retina window devicePixelRatio gt 1

随机推荐

  • Sklearn - 绘制分类报告给出的输出与基本平均值不同?

    我想利用这个答案如何绘制 scikit learn 分类报告 https stackoverflow com questions 28200786 how to plot scikit learn classification report
  • 是否可以将参数从模型中传递到 before_create ?

    我有一个模型 例如 class Account lt ActiveRecord Base before create build dependencies def build dependencies use nifty params to
  • 类模板中的静态成员变量

    当您有一个包含静态成员的 非模板化 类时 例如 class Foo public static int x Then Foo x必须在一个且仅一个翻译单元中定义 否则编译器会抱怨多个定义 所以在somefile cpp你必须定义它 int
  • JSF/Hibernate NotBlank 验证

    我有一个简单的 JSF RichFaces 表单 其中包含一些字段 显然还有一个用于存储它们的支持 bean 在该 bean 中 所有必要的属性都有验证注释 jsr303 hibernate 但我似乎找不到可以检查属性 字符串 是否为空的注
  • 当readyState = 4时,HTML5视频持续时间无穷大

    我正在创建一个自定义 html5 视频播放器 可以播放直播流 录制直播流和播放常规视频文件 为了录制 我使用 RecordRTC 一切运行良好 但我需要创建一个自定义搜索栏 为此 我只需使用 var seekerPosition video
  • 使用 Maven/JUnit/Spring 在第一次失败时停止测试

    我希望 Maven 在遇到第一个错误时停止尝试运行我的 JUnit Spring 测试 这可能吗 我的测试类如下所示 我将它们作为标准 Maven 目标运行 ContextConfiguration locations classpath
  • Jaybird CallableStatement 在获取输出参数之前不会执行

    我有这个Java code Connection conn connectionProvider getConnection statement conn prepareCall execute procedure rm set coord
  • 使用 IMvxMessenger 获取消息两次

    我正在开发 Xamrin Android 应用程序 并且正在使用 MvvmCross 在我的应用程序中 我使用了 IMvxMessenger 但是当我更改视图并返回到同一视图时 我收到两次消息 然后它就崩溃了 解决办法是什么 这是我的代码
  • Java 强制转换异常(不是类强制转换异常)

    当 java 中捕获异常时 是否有将异常转换为新类型的用例 或者是标准 throw new DiffException e 唯一的办法就是做到这一点 如果我忽略了某些内容 我深表歉意 但我得到的唯一搜索结果是 ClassCastExcept
  • UINavigationBar右键不显示

    我通过通知使用以下函数在 UINavigationBar 上加载右键 即使我可以追踪该按钮并验证它是否已分配 它也不会显示 有什么想法吗 编辑 2011 年 4 月 6 日下午 2 42 所以 一些有趣的事情 宽度总是报告为 0 0 voi
  • JMeter JSON Extractor 按条件获取值

    I get a JSON像这样的字符串 id 123 name XX default false type other id 789 name ZZ default false type first 我想得到id 其中名称是ZZ 所以提取的
  • 将 svelte 应用程序构建为一组静态文件

    我想在我的下一个项目中使用 Svelte 因为它的语法简洁并且使用起来非常愉快 不幸的是 要在我的公司部署该应用程序 我无法使用node或服务器上类似的东西 我只能从以下位置提供应用程序nginx作为静态文件 苗条有可能吗 我找不到任何可以
  • 即使套接字是非阻塞的,Perl 上的 recv 也会阻塞

    我在守护进程中用 perl 创建了一个像这样的套接字 IO Socket INET gt new LocalPort gt port Proto gt udp Blocking gt 0 or die socket 在 Linux 机器上
  • 如何在启动时检查麦克风访问情况?

    在我的应用程序中 我将使用麦克风进行一些录音 从iOS7 0开始 用户在开始音频之前会被要求检查访问麦克风的权限 我的应用程序中有一个 开始录制 按钮 这里它首先检查用户的录音权限 这是执行此操作的代码 if AVAudioSession
  • 获取文档后从 Firestore 获取文档 ID

    成功获取文档后如何获取 firestore 文档的文档 id 我正在从这样的 firestore 集合中获取用户数据 const ref await db collection users where phone phone where p
  • 从 Android 模拟器中删除密码?

    如何摆脱 摆脱Android模拟器中的 输入密码解锁 提示 希望我能解释一下这是如何打开的 但这可能是我的错 我一直在尝试使用 android maven 插件为自定义内核构建应用程序 以构建自定义设备管理应用程序 我记得在模拟器中找到了一
  • 解压文件跳过文件夹

    我正在创建一个 php 文件 该文件将从 BitBucket Git 存储库 中拉出后更新我的网站 它下载整个主文件或提交的 zip 文件 然后将其解压缩到网站的文件夹中 我遇到的问题是有一个随机命名的文件夹 其中包含 zip 文件中的所有
  • 解决方案的 NuGet 包还原失败(仅在命令行上)

    我最近切换到 NuGet 最新推荐的方法 该方法为项目使用 packages json 文件 dependencies Newtonsoft Json 9 0 1 RestSharpSigned 105 2 3 frameworks net
  • IE 中的 SVG 动画笔划-dashoffset - 笔划宽度为 0

    我正在尝试使用 SVG 制作圆形填充动画 它在 Chrome FF Safari 中工作得很好 但在 IE 中动画不会发生 我正在使用 jQuery animate 不是 css 动画 IE 11 及以下版本不支持 SVG 简化的动画代码
  • 当应用程序进入后台时如何继续运行 NSTimer

    我正在创建益智游戏应用程序 并使用 NSTimer 显示时间 即 01 20 当应用程序进入后台时 NSTimer 会暂停 但即使应用程序处于后台状态 我也想继续它 例如当应用程序进入后台时 计时器计数为 15 秒 and I 放置5秒现在