从iOS 7开始,Apple的多任务API允许应用程序以三种新的后台模式运行:后台提取,远程通知内容和后台传输服务。 Apple还为iOS用户提供了控制是否允许所有应用程序在后台运行或单个应用程序是否可以在后台运行的功能(设置>常规>后台应用程序刷新)。有没有办法让我的应用程序以编程方式检测用户是否禁用了我的应用在后台刷新的功能?在iOS 7中检测后台应用程序刷新的用户设置
40
A
回答
69
这是你在找什么。
if ([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusAvailable) {
NSLog(@"Background updates are available for the app.");
}else if([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusDenied)
{
NSLog(@"The user explicitly disabled background behavior for this app or for the whole system.");
}else if([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusRestricted)
{
NSLog(@"Background updates are unavailable and the user cannot enable them again. For example, this status can occur when parental controls are in effect for the current user.");
}
8
检查UIApplication的backgroundRefreshStatus属性。以下是引用苹果文件。
此属性反映应用程序是否可以启动到后台以处理后台行为,例如处理后台位置更新和执行后台提取。如果您的应用程序依赖于启动到后台执行任务,则可以使用此属性的值来确定是否可以执行此操作,并在用户不是的情况下警告用户。如果此属性的值设置为UIBackgroundRefreshStatusRestricted,则不要警告用户;受限用户无法为应用程序启用多任务处理。
3
更新了斯威夫特3和iOS10:
switch UIApplication.shared.backgroundRefreshStatus {
case .available:
print("Refresh available")
case .denied:
print("Refresh denied")
case .restricted:
print("Refresh restricted")
}
相关问题
- 1. 在iOS中以编程方式将用户置于后台刷新设置
- 2. iOS:当应用程序从后台返回时检测用户位置
- 3. 我的应用程序从iOS8上的“后台应用程序刷新”设置中消失
- 4. IOS:应用程序进入后台后检测到锁定?
- 5. 后台应用程序刷新检查,为整个设备和iOS 7中的每个特定应用程序启用和禁用
- 6. 如何在后台运行iOS应用程序(iOS 9+)直到用户更改iOS设备的WiFi设置
- 7. iOS位置更新应用程序在后台
- 8. 如何在Swift中实现后台应用程序刷新?
- 9. 设置在应用程序部署后在webpshere 7中重置
- 10. 在钛应用程序iOS应用程序中检测用户不活动
- 11. 在Xcode中检测后台应用程序以调试报亭应用程序
- 12. 从iOS中的后台应用程序打开应用程序?
- 13. 在iOS 7中后台跟踪用户位置
- 14. 从iPhone iOS 7中的应用程序打开设置应用程序
- 15. 如何检测用户在后台运行的应用程序的不活动?
- 16. 在后台运行iOS应用程序
- 17. IOS CancelNotificaion当应用程序在后台
- 18. iOS应用程序在后台
- 19. 在后台应用程序中重新启动没有用户界面的iOS应用程序?
- 20. iOS。应用程序更新后保护设置不会重置?
- 21. VideoView在后台应用程序中设置为初始位置
- 22. Android - 更改设置后刷新应用程序
- 23. 如何在后台应用程序中检测Shake手势?
- 24. 在后台应用程序中检测锁定屏幕
- 25. iOS中的后台应用程序检测传入的电话呼叫
- 26. Phonegap应用程序在离开应用程序后刷新
- 27. 如何在iOS应用程序中在线更新后台位置?
- 28. 在iOS6和iOS 7上测试应用程序 - 更新
- 29. 刷新应用程序后检测数据库的最后一个值
- 30. iOS 7 - 在应用程序进入后台后不会调用didUpdateLocations委托
谢谢,这是有益的。然而,你可以评论我在这方面的依赖问题 - - http://stackoverflow.com/questions/19235183/uiapplicationbackgroundrefreshstatusdidchangenotification-usage-without-correspo – Ashok
嗨,被称为thiS方法。在后台它未能呼吁 –
我'米猜测背景appRefresh无关的无声通知是正确的? – Honey