如果终止了应用程序,后台模式功能(例如后台获取和位置更新)是否起作用?还是仅当应用进入后台时才有效?
谢谢
答案 0 :(得分:3)
是的,(大多数情况下)它会起作用,前提是您正确设置了所有内容并获得了权限。您的应用需要至少启动1次,才能订阅更新。
对于后台抓取,请在UIApplication.shared.setMinimumBackgroundFetchInterval(3600)
方法中设置didFinishLaunching
,实施performFetchWithCompletionHandler
方法,并在后台模式下启用后台抓取。
注意尽快执行此操作,并尽快调用completionHandler。
详细了解Updating Your App with Background App Refresh here
要进行通知更新,还必须将allowsBackgroundLocationUpdates
对象的CLLocationManager
属性设置为true
,并在后台模式下启用位置更新。
答案 1 :(得分:1)
Background fetch
的工作原理类似,它允许应用程序在后台下载内容。如果该应用终止,并触发了一些下载内容的触发器,则实际上它会通过在后台静默启动该应用并下载内容来唤醒。请在下面查看有关Apple的说明。
上述每种模式都可以让系统知道您的应用程序应 在适当的时候被唤醒或启动以回应相关 事件。例如,一个开始播放音乐然后移动的应用 到后台仍然需要执行时间来填充音频输出 缓冲区。启用音频模式会告诉系统框架 应继续在以下位置对该应用进行必要的回调 适当的间隔。如果应用未选择此模式,则任何音频 当应用程序移至 背景。
在此,前面的模式指的是“ Background fetch, Audio and AirPlay, Location updates
和应用程序的其他Bacground模式”
请参考Apple document关于后台执行。有关不同背景模式的更多信息,请参见“ Declaring Your App’s Supported Background Tasks
”。
位置更新的工作方式不同。有多种Apple服务可用于获取位置。
Significant Location service
:在所有模式下均可使用。前景,背景,甚至处于终止模式。
Standard Location service
:仅在FG和BG模式下有效。当应用程序处于终止模式时,它不起作用。
有关BG中位置的详细信息,请参阅Handling Location Events in the Background文档。
希望有帮助。
答案 2 :(得分:1)
如果终止了应用程序,则背景提取和位置更新是否有效?还是仅在应用进入后台时才起作用?
这取决于您在项目中使用的location service
类型。请参阅下面对所有类型的定位服务的分析。
Standard location service:如果您实施了标准位置服务,则该服务仅适用于
background
和foreground
状态。Significant location updates:如果您实施了重要的位置更新,则该更新将适用于
background
,foreground
和 也terminate
状态。Region Monitoring:如果您实施了重要的位置更新,则该更新将适用于
background
,foreground
和 也terminate
状态。Visits Location Service:如果您实现了访问位置服务,那么它将适用于
background
,foreground
和 也terminate
状态。
请参考以下参考文献。