> Skype
> Viber
> Empatica
> Zenly
还有更多的应用程序可以做到这一点。
解决方法 基本上在iOS中没有这样的服务类型的应用程序或功能。即使是“背景”应用程序(uibackgroundmode)也不能完全自由运行,没有其他 *** 作系统上的服务或守护程序等限制。
以下是后台执行和通知和计时器等的情况。
1)应用程序无法在后台执行,除非:
a)它需要额外的时间从 *** 作系统这样做。这是使用beginBackgroundTaskWithExpirationHandler完成的。苹果没有指定(有意)这个额外的时间是多久,但实际上大概是10分钟。
b)应用程序有背景模式,模式有:voip,audio,location,newstand。即使它具有这些类型之一,应用程序也无法执行无限制。本讨论的其余部分假定应用程序没有后台模式。如果您尝试使用这些背景模式之一,使您的应用程序能够在后台运行,但是您的应用程序无法正确使用特定功能,那么您的应用程序将在应用程序商店提交时被拒绝(即具有uibackgroundmode它必须是:一个voip应用程序,需要持续的位置更新,连续播放音频的能力是一个基本功能,或者是一个新的应用程序)。
2)当应用程序暂停时,无法直接唤醒自己。它以前不能安排一个NSTimer,它不能使用像performSelector这样的东西:afterDelay。等等
应用程序可以再次活动的唯一方法是,如果用户使用某种功能使其处于活动状态。用户可以通过以下方式执行此 *** 作:
a)直接从其图标启动应用程序
b)启动该应用程序以响应应用程序以前计划的本地通知,该应用程序处于活动状态。
c)启动应用程序以响应服务器发送的远程通知。
d)其他几个:如果应用程序已注册处理通过url启动的URL启动;或者如果其注册能够处理某种类型的内容。
如果应用程序在本地/远程通知触发时处于前台,则应用程序将直接接收。
如果当本地/远程通知触发时应用程序当前不在前台,那么应用程序不会接收到该应用程序。当通知发生时,没有执行的代码!
只有当用户选择通知时,该应用才会被激活并且可以执行。
请注意,用户可以针对整个设备或仅针对特定应用程序禁用通知,在这种情况下,用户将永远不会看到它们。如果在通知发生火灾时设备已关闭,则丢失。
IOS 7更新
1)有一些新的背景模式,如背景提取(您仍然无法以确定性方式被 *** 作系统激活)
2)现在有一个后台推送通知
3)beginBackgroundTaskWithExpirationHandler时间从10分钟减少到3。
总结以上是内存溢出为你收集整理的iOS:保持应用程序像服务一样运行全部内容,希望文章能够帮你解决iOS:保持应用程序像服务一样运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)