如何无限地每1分钟运行一个iOS应用程序?

2024-05-15

我制作了一个应用程序,需要每 1 分钟向服务器发送一次位置和状态更新。 我尝试了以下方法,但没有一个能帮助我。有什么解决办法吗?

1 - NSTimer- 很多人建议这样做。但问题出在后台模式上,它只能工作 20 分钟。该应用程序停止发送数据后。

2 - 背景获取模式- 一开始看起来像是正确的解决方案。但这种能力并不能保证每 1 分钟运行一次应用程序。它有一个算法,iOS 决定应该运行哪个应用程序。

这个API不像定时器任务,系统会决定何时调用 处理程序取决于许多约束。因此,如果将 timeInterval 设置为 2.00f(2秒),每 2+(最小)秒调用一次处理程序。

3 - 位置更新- 同样,这种方式不起作用,因为它仅在您移动至少 500 米时运行您的应用程序。

一旦设备移动 500 米,应用程序就会收到通知 或之前通知中的更多内容。不应该期待 通知的频率超过每五分钟一次。如果 设备能够从网络、位置管理器检索数据 更有可能及时发送通知。

4 - 推送通知- 在一篇文章中说,通过这种方法,您可以在定义的时间内运行应用程序,而且确实如此!

您可以在定义的计划时间内安排通知。但问题是向用户显示通知。我需要在后台保持安静。

另外,您不能每 1 分钟运行一些代码。它只是向用户显示通知。用户应该点击您的通知,然后点击 didReceiveLocalNotification 可以使用并且您可以运行代码。


正如苹果公司在他们的声明中所说文档 https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#//apple_ref/doc/uid/TP40007072-CH4-SW4:

在 iOS 中,只允许特定的应用程序类型在后台运行:

  • 在后台向用户播放音频内容的应用程序,例如音乐播放器应用程序
  • 在后台录制音频内容的应用程序
  • 让用户随时了解其位置的应用程序,例如导航应用程序
  • 支持互联网语音协议 (VoIP) 的应用
  • 需要定期下载和处理新内容的应用
  • 从外部配件接收定期更新的应用程序

实现这些服务的应用程序必须声明它们的服务 支持和使用系统框架来实施相关方面 那些服务。声明服务让系统知道哪些服务 您使用的服务,但在某些情况下是系统框架 实际上可以防止您的应用程序被暂停。

您可以在链接中阅读有关实现和声明这些后台任务的所有内容。但是,如果你的App是其他类型的,或者你无法使用系统框架,那么你的App就没有办法无限期地在后台运行。即使是这样,您也应该始终预期系统会因某种原因停止您的任务(例如重新启动手机)。

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

如何无限地每1分钟运行一个iOS应用程序? 的相关文章

  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁
  • 如何在 Swift 中使用 substringToIndex? [复制]

    这个问题在这里已经有答案了 我在这一行收到编译器错误 UIDevice currentDevice identifierForVendor UUIDString substringToIndex 8 类型 String Index 不符合协
  • 从 Plist 中存储和检索 [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 在 plist 文件中存储两个 NSMutableArray https stackoverflow com questions 6070568 ios store two nsmutable
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • iOS:从非图像数据生成图像(Godus,如风景)

    所以看到图像后Godus http www kickstarter com projects 22cans project godus我想知道如何生成简单的 非交互式的 2D 图像 with 不同高度或层数的颜色不同就像下面的图片一样 我只
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • Swift:从自定义 UITableViewCell 中的 UITextField 检索文本并将其放入数组中

    我正在制作一个非常简单的应用程序 用户在第一个屏幕中输入人数 在第二个屏幕中 它会生成一些UITableViewCell基于用户在第一个屏幕中输入的数字 这UITableViewCell have a UITextField在其中 一旦用户
  • Swift -boundingBox 导致 EXC_BAD_ACCESS (代码 = 1)

    我正在使用 SceneKit 来显示文本节点 这是我的代码 foo swift extension SCNNode func getNodeSize gt width Float height Float let min max bound
  • 如何从 NSString 中删除十六进制字符

    我面临一个与字符串中的某些十六进制值相关的问题 我需要从字符串中删除十六进制字符 The problem is when i print object it prints as BLANK line And in debug mode it
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • 具有多种自定义单元格类型的 RxSwift 表视图

    我想知道是否有任何代码示例RxSwift当我可以在一个表视图中使用多个自定义单元格时 例如 我有两个部分 第一部分有 10 个单元格 类型为CellWithImage标识符和第二部分有 10 个带有类型的单元格CellWithVideo标识
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4

随机推荐

  • 在 CosmosDb 中使用 /id 作为分区键的含义

    在每分钟有 1000 个条目 唯一键 进入 cosmos 的场景中 使用 id 作为分区键安全吗 特别是 有一个逻辑分区的概念https learn microsoft com en us azure cosmos db partition
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • laravel cron 使用错误

    Laravel 错误 cron 使用 usr bin php home sitevk artisan 计划 运行 1 gt gt dev null 2 gt 1 应用 控制台 内核 use Illuminate Console Schedu
  • Javascript 原型访问另一个原型函数

    function Scroller id this ID id this obj id this currentSlide 1 var self this setInterval self nextSlide 1000 Scroller p
  • iPhone AVFoundation 相机方向

    我一直在绞尽脑汁地试图让 AVFoundation 相机以正确的方向 即设备方向 捕获图片 但我无法让它工作 我看过教程 看过 WWDC 演示 还下载了 WWDC 示例程序 但即使这样也没有成功 我的应用程序的代码是 AVCaptureCo
  • 获取可用内容提供商的列表

    有没有一种方法可以以编程方式列出所有可用的内容提供商 http developer android com guide topics providers content providers html在设备上 没有真正的用例 我只是认为看看我
  • 在 Three.js 中从 Web Worker 加载纹理

    当将大纹理图像应用到网格上一段明显的时间时 Three js 会锁定浏览器的主线程 让我们考虑以下示例 var texLoader new THREE TextureLoader texLoader load someLargeTextur
  • “没有可用的二元红宝石”是什么意思?

    每当我使用rvm install x x x 即使安装成功 我也会收到此警告 No binary rubies available for osx 10 12 x86 64 ruby 2 4 0 Continuing with compil
  • 如何将 Tableau 提取数据转换为 csv(或 xls)

    我已成功从 Tableau 转换 twbx文件至 twb现在有一个 tde数据文件 这怎么可以 tde被转换为 csv or xls x 从版本 10 3 开始 您还可以从 数据 菜单导出为 CSV 该命令导出整个数据源 而工作表菜单上的导
  • Tridion 2009 模板发布失败

    在 Tridion 2009 中 我们在尝试发布页面 NET 时刚刚开始遇到一些错误 一开始是间歇性的经典 RenderComponentPresentation 超出了渲染失败的最大数量 0 错误 然后发展为完全失败 我们可以正确预览页面
  • onBackPressed - 避免破坏 Activity

    我有两个活动 活动 A 启动活动 B 然后活动 B 从数据库加载一些内容 并将数据可视化 完全初始化 B 中的所有内容需要一些时间 5 10 秒 我的问题是 如果我按 B 中的后退按钮 它会销毁 B 活动 调用 onDestroy 并返回到
  • Composer 无法下载文件

    我正在尝试在命令行上使用作曲家 php composer phar update php composer phar install php composer phar self update php composer phar selfu
  • Android 4.4 上使用反射上传文件的解决方法

    从 Android 4 1 到 Android 4 3 您可以子类化WebChromeClient在Android上并实现以下内容 隐藏 因此没有 Override 方法 public void openFileChooser ValueC
  • 是否有一种加密技术可以将 8 位数字变成 10 或 11 位或更少的数字?

    我见过的许多加密技术都可以轻松加密一个简单的 8 位数字 如 12345678 但结果通常是 8745b34097af8bc9de087e98deb8707aac8797d097f 编造的 但你明白了 有没有办法加密这个 8 位数字 但生成
  • AWS JS SDK TypeError:STS 不是构造函数

    我有一个 ReactJS 应用程序 它使用 aws sdk 进行认知登录 我用了yarn安装所有模块 但是当我尝试访问 localhost 的网站时 出现 JS 错误 未捕获 承诺中 类型错误 STS 不是构造函数 错误指向该行aws sd
  • 如何从 DTrace 脚本打印 NSString

    This question https stackoverflow com questions 1413623 how do i print a cfstringref in a dtrace action正在问同样的事情 但是当我尝试时
  • 如何从 Java 发送 SMTP 消息? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用 Gmail 从 Java 应用程序发送电子邮件 https stackoverflow com questions 46663 how do you send email from a ja
  • 如何合并多个Excel文件,每个Excel文件中有多个相同数量的工作表

    我目前可以将多个 Excel 文件合并到一张表中 我想合并每个 Excel 文件中具有两个不同工作表的多个工作表 并为每个工作表指定名称我怎样才能实现这个目标 下面是我当前的代码 用于将多个 Excel 文件中的单个工作表组合在一起 而无需
  • 如何从 Delphi 中的函数返回对象而不导致访问冲突?

    我有一个返回 TStringList 的 delphi 函数 但是当我返回一个值并尝试使用它时 我收到一个访问冲突错误 即 myStringList FuncStringList myStringList Items Count lt Th
  • 如何无限地每1分钟运行一个iOS应用程序?

    我制作了一个应用程序 需要每 1 分钟向服务器发送一次位置和状态更新 我尝试了以下方法 但没有一个能帮助我 有什么解决办法吗 1 NSTimer 很多人建议这样做 但问题出在后台模式上 它只能工作 20 分钟 该应用程序停止发送数据后 2