iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS:保持应用程序像服务一样运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在iOS中,我如何指示操作系统保持我的应用程序运行,即使它不再在前台

> Skype
> Viber
> Empatica
> Zenly

还有更多的应用程序可以做到这一点。

解决方法

基本上在iOS中没有这样的服务类型的应用程序或功能
即使是“背景”应用程序(UIBACkgroundModE)也不能完全自由运行,没有其他操作系统上的服务或守护程序等限制。

以下是后台执行和通知和计时器等的情况。

1)应用程序无法在后台执行,除非:

a)它需要额外的时间从操作系统这样做。这是使用beginBACkgroundTaskWithExpirationHandler完成的。苹果没有指定(有意)这个额外的时间是多久,但实际上大概是10分钟。

b)应用程序有背景模式,模式有:voip,audioLOCATIOn,newstand。即使它具有这些类型之一,应用程序也无法执行无限制。本讨论的其余部分假定应用程序没有后台模式。如果您尝试使用这些背景模式之一,使您的应用程序能够在后台运行,但是您的应用程序无法正确使用特定功能,那么您的应用程序将在应用程序商店提交时被拒绝(即具有UIBACkgroundMode它必须是:一个voip应用程序,需要持续的位置更新,连续播放音频的能力是一个基本功能,或者是一个新的应用程序)。

2)当应用程序暂停时,无法直接唤醒自己。它以前不能安排一个NSTimer,它不能使用像performSELEctor这样的东西:afterDelay。等等

应用程序可以再次活动的唯一方法是,如果用户使用某种功能使其处于活动状态。用户可以通过以下方式执行此操作:

a)直接从其图标启动应用程序

b)启动该应用程序以响应应用程序以前计划的本地通知,该应用程序处于活动状态。

C)启动应用程序以响应服务器发送的远程通知

d)其他几个:如果应用程序已注册处理通过url启动的URL启动;或者如果其注册能够处理某种类型的内容

如果应用程序在本地/远程通知触发时处于前台则应用程序将直接接收。

如果当本地/远程通知触发时应用程序当前不在前台,那么应用程序不会接收到该应用程序。当通知发生时,没有执行的代码

只有当用户选择通知时,该应用才会被激活并且可以执行。

请注意,用户可以针对整个设备或仅针对特定应用程序禁用通知在这种情况下,用户将永远不会看到它们。如果在通知发生火灾时设备已关闭,则丢失。

IOS 7更新

1)有一些新的背景模式,如背景提取(您仍然无法以确定性方式被操作系统激活)

2)现在有一个后台推送通知

3)beginBACkgroundTaskWithExpirationHandler时间从10分钟减少到3。

大佬总结

以上是大佬教程为你收集整理的iOS:保持应用程序像服务一样运行全部内容,希望文章能够帮你解决iOS:保持应用程序像服务一样运行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。