有啥方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)?
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”中所述。如果您只需要大概的位置,您可以使用CLLocationManager
的startMonitoringSignificantLocationChanges
方法。正如文档中所写:“如果您启动此服务并且您的应用程序随后终止,如果有新事件到达,系统会自动将应用程序重新启动到后台。”
【讨论】:
我更喜欢精确但是当用户从应用程序切换器中杀死应用程序时,它在 IOS6 及更高版本上不起作用。另外 StartMonitoring 当 App 被用户从 App Switcher 杀死时,我从未收到任何事件。即使应用程序被用户杀死,我也试图获取缓存/当前位置。【参考方案2】:您可以使用显着位置更改唤醒您的应用。 当您将应用程序切换到后台时,您必须开始重大的位置更改。 然后系统将在重大位置更改后唤醒您的应用程序。 频率不快于 5 分钟,每 500 米。 您必须通过在项目 AppDelegate 中的 didFinishLaunchingWithOptions 中检查 LocationKey 来捕捉事件。
【讨论】:
以上是关于有啥方法可以将我的应用程序从终止状态唤醒(从应用程序切换器终止)?的主要内容,如果未能解决你的问题,请参考以下文章