iOS中是不是有任何相当于Android的服务?

Posted

技术标签:

【中文标题】iOS中是不是有任何相当于Android的服务?【英文标题】:Is there any equivalent of Services of Android in iOS?iOS中是否有任何相当于Android的服务? 【发布时间】:2013-05-16 02:19:19 【问题描述】:

我想每 12 小时检查一次我的应用程序中的数据库,以查找日期列具有相应日期的行。这是通过在android中编写服务来完成的。但是ios中是否有任何等效的服务可以满足我的要求?

【问题讨论】:

您想检查应用程序何时处于后台? 我想检查应用程序是在后台还是已打开。 我认为应用在后台时是不可能的。 在现场你可以使用 NSTimer。在后台几乎不可能。 【参考方案1】:

没有。 SDK 或 iPhone/iPad 中一般没有这样的东西。您只能编写会影响应用程序生态系统的代码,而不是操作系统。 当您的应用程序关闭时,它会关闭,并且在用户打开它/打开与您的应用程序相关的推送通知之前不会采取任何操作。

如果用户为您的应用批准了基于位置的服务,那么即使您的应用完全关闭,也有几种方法可以运行简短的后台进程。其中之一是使用Monitoring Shape-Based Regions,这基本上意味着如果用户离开区域 X/进入区域 Y 打开应用并运行一些命令,然后再次关闭。

聪明的方法(也是我能想到的唯一方法)在 iOS 中完成您所追求的事情是在服务器上运行该服务并在应用程序时从服务器中提取数据已打开。

【讨论】:

在 iOS13+ 中,您可以使用 BackgroundTasks 来安排检查和更新数据库所需的后台工作。 developer.apple.com/documentation/backgroundtasks, andyibanez.com/posts/modern-background-tasks-ios13【参考方案2】:

在 iOS7 及更高版本中,您可以使用 background fetch 来完成此任务。 您可以查看本教程: http://code.tutsplus.com/tutorials/ios-7-sdk-working-with-background-fetch--mobile-20520

【讨论】:

“后台处理”模式(iOS13+)更适合这种情况——developer.apple.com/documentation/backgroundtasks。 Apple 可能不会批准使用“后台获取”模式来完成问题中描述的那种工作,因为它被指定在后台获取内容以更新应用程序的界面。【参考方案3】:

您可以在此处找到解决方案。后台执行执行此操作。

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

补充:Apple 不允许应用程序一直在后台运行。它提供了一些有限长度的时间来完成您的应用程序执行。您可以根据执行需要增加该时间。但不建议这样做。

【讨论】:

这与操作人员的要求无关。 android 中的服务在应用程序完全关闭时运行。您提供的链接谈论前景或背景。 @EXEC_BAD_ACCESS 实际上,当应用程序完全关闭时,android 服务(如果由应用程序启动)不会运行。它们可以在后台运行更长的时间,但它们仍然链接到启动它们的应用程序。 A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use. (安卓文档)。所以如果你强制关闭一个应用程序,它会杀死所有正在运行的服务。 链接已损坏。鼓励将实际答案放在 *** 中,并且只提供链接作为参考。

以上是关于iOS中是不是有任何相当于Android的服务?的主要内容,如果未能解决你的问题,请参考以下文章

通知iOS和Android服务器上的数据更改

Android相当于ImageRecorderIOS.openCameraDialog

Android辅助功能基本操作

Android 相当于 ios devicecheck

IOS跟ANDROID的区别

ios中是不是有任何类型的部分唤醒锁定机制?