有啥方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)?

Posted

技术标签:

【中文标题】有啥方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)?【英文标题】:Is there any way to wake my application from killed state(killed from app switcher)?有什么方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)? 【发布时间】:2014-02-12 08:27:41 【问题描述】:

我正在创建一个应用程序,该应用程序将更新的位置发送到服务器,而不管应用程序状态如何。我尝试静默推送在后台唤醒我的应用程序,但它没有工作(它工作正常,除非我的应用程序被用户从应用程序切换器杀死)。我正在使用位置管理器获取当前位置。

ios7 是否提供此功能以在后台启动您的应用程序(即使应用程序被用户从应用程序切换器杀死)??

我已经花了五天时间没有任何成功。如果有人可以帮助我,那将非常感激。

提前致谢!!

【问题讨论】:

【参考方案1】:

如果您需要精确的 GPS 位置,您可以将“位置”值添加到 Info.plist 中的 UIBackgroundModes 数组中,如“UIBackgroundModes location and significant location changes with region monitoring”中所述。如果您只需要大概的位置,您可以使用CLLocationManagerstartMonitoringSignificantLocationChanges 方法。正如文档中所写:“如果您启动此服务并且您的应用程序随后终止,如果有新事件到达,系统会自动将应用程序重新启动到后台。”

【讨论】:

我更喜欢精确但是当用户从应用程序切换器中杀死应用程序时,它在 IOS6 及更高版本上不起作用。另外 StartMonitoring 当 App 被用户从 App Switcher 杀死时,我从未收到任何事件。即使应用程序被用户杀死,我也试图获取缓存/当前位置。【参考方案2】:

您可以使用显着位置更改唤醒您的应用。 当您将应用程序切换到后台时,您必须开始重大的位置更改。 然后系统将在重大位置更改后唤醒您的应用程序。 频率不快于 5 分钟,每 500 米。 您必须通过在项目 AppDelegate 中的 didFinishLaunchingWithOptions 中检查 LocationKey 来捕捉事件。

【讨论】:

以上是关于有啥方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)?的主要内容,如果未能解决你的问题,请参考以下文章

通过通知从后台唤醒 iOS 应用

iOS 15 在进入 BLE 信标区域时不会唤醒应用

已终止的应用程序未使用 iBeacon 数据包唤醒

有啥方法可以从 Windows 10 中的 c# 桌面应用程序使用蓝牙 LE?

静默推送不触发代码执行

OBJ-C 操作方法:在同一设备中使用 BLE 连接和 iBeacon 的应用程序