iOS:保持应用程序像服务一样运行

iOS:保持应用程序像服务一样运行,第1张

概述在iOS中,我如何指示 *** 作系统保持我的应用程序运行,即使它不再在前台? > Skype > Viber > Empatica > Zenly 还有更多的应用程序可以做到这一点。 基本上在iOS中没有这样的服务类型的应用程序或功能。 即使是“背景”应用程序(UIBackgroundMode)也不能完全自由运行,没有其他 *** 作系统上的服务或守护程序等限制。 以下是后台执行和通知和计时器等的情况。 1)应 在iOS中,我如何指示 *** 作系统保持我的应用程序运行,即使它不再在前台?

> 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:保持应用程序像服务一样运行所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存