【问题标题】:How to run ios application in background on device restart?如何在设备重启时在后台运行 ios 应用程序?
【发布时间】:2013-08-26 07:32:59
【问题描述】:

我正在开发位置跟踪应用程序。即使在后台,此应用程序也会连续发送位置。我正在使用 SLC 属性。

我还在使用静默推送技巧进行位置跟踪。无声推送的逻辑: 检查 AppIconbadge 编号并根据 AppIconbadge 编号执行操作。我有一个计时器,每 10 秒检查一次 AppIconbadge。

现在是这样的: 设备在 SLC 上并将应用程序置于后台并关闭设备。当您切换回在此设备上时,当 Ping(静默推送)不起作用时,它仍在 SLC 上报告。

当应用程序获得 SLC 触发器时,我已启动计时器。但它不起作用。

你能帮忙吗?

【问题讨论】:

  • 根据 Apple 文档,您的应用程序将处于轨道位置后台模式。当设备重新启动时,这将不允许您启动。

标签: iphone ios objective-c background


【解决方案1】:

你做不到。

iOS 实现超长电池寿命和减少 RAM 使用的方式使这种事情变得不可能。

您唯一真正的可能性是让您的服务器偶尔向设备发送推送通知,并让设备上的应用程序响应其位置。这就是“查找我的手机”和“查找我的朋友”的工作方式。这个想法是通过尽可能多地在具有主电源和几乎无限 RAM 的服务器上而不是在只有电池并且可能需要所有 RAM 来玩 3D 游戏的手机上做,来延长电池寿命

基本上 CPU 大部分时间都没有运行,所以它不能安排定期运行的东西,你不能依赖有足够的 RAM 来运行你的应用程序,所以它也不能即使 CPU 开机也一直在运行。

根据 WWDC 2013 的主题演讲,推送通知在 iOS 7 上要强大得多,所以你应该查一下(我自己没有研究过,只是看到了主题演讲。

【讨论】:

  • 谢谢你,但你没有提到我们为什么不能这样做?
  • @user1829463 我们不能这样做,因为硬件的设计方式使其不可能。这就是为什么 iPad 使用便宜的小电池可以使用一周,而 macbook 使用昂贵的大电池可以使用一天的原因。
  • @AbhiBeckert 我喜欢你对 iPad 和 macbook 的比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多