Android AlarmManager的iOS替代方案
iOS Swift 2是Android AlarmManager的替代品 到目前为止,我发现的是NSTimer。但这只在应用程序启动时起作用,一旦它进入后台,它将无法工作,我需要在后台运行一些函数,并根据我的业务逻辑来决定是否要执行某些操作…例如,是否满足某些条件以显示本地通知 编辑 对于那些有相同问题的人来说,简单的回答是,iOS上没有这样的问题 唯一的解决办法是使用远程推送通知(静默通知)来唤醒应用程序,然后您就可以实现您的业务逻辑。 *重要提示 从我在一些地方发现的情况来看,人们抱怨使用静默通知来执行此操作,因为应用程序商店可能会拒绝您的应用程序Android AlarmManager的iOS替代方案,ios,swift,Ios,Swift,iOS Swift 2是Android AlarmManager的替代品 到目前为止,我发现的是NSTimer。但这只在应用程序启动时起作用,一旦它进入后台,它将无法工作,我需要在后台运行一些函数,并根据我的业务逻辑来决定是否要执行某些操作…例如,是否满足某些条件以显示本地通知 编辑 对于那些有相同问题的人来说,简单的回答是,iOS上没有这样的问题 唯一的解决办法是使用远程推送通知(静默通知)来唤醒应用程序,然后您就可以实现您的业务逻辑。 *重要提示 从我在一些地方发现的情况来看,人们抱怨使用静
如果有人在app store上使用此方法进行应用,请分享您的经验。没有 正如评论中已经指出的,我们非常清楚: 始终避免做任何背景工作,除非这样做可以改善整体用户体验。应用程序可能会移动到后台,因为用户启动了其他应用程序,或者因为用户锁定了设备,并且当前未使用该设备。在这两种情况下,用户都表示您的应用程序现在不需要做任何有意义的工作 除以下例外情况外: 对于需要更多执行时间才能执行的任务,您必须请求特定的权限,以便在后台运行这些任务,而不会挂起它们。在iOS中,仅允许特定应用类型在后台运行:
- 在后台向用户播放音频内容的应用程序,如音乐播放器应用程序
- 在后台录制音频内容的应用程序
- 随时通知用户其位置的应用程序,如导航应用程序
- 支持互联网语音协议(VoIP)的应用程序
- 需要定期下载和处理新内容的应用程序
- 从外部附件接收定期更新的应用程序
没有确切的等价物。请阅读: 有关部分: 对于需要更多执行时间才能执行的任务,您必须请求特定的权限,以便在后台运行这些任务,而不会挂起它们。在iOS中,仅允许特定应用类型在后台运行:
- 在后台向用户播放音频内容的应用程序,如音乐播放器应用程序
- 在后台录制音频内容的应用程序
- 随时通知用户其位置的应用程序,如导航应用程序
- 支持互联网语音协议(VoIP)的应用程序
- 需要定期下载和处理新内容的应用程序
- 从外部附件接收定期更新的应用程序
如果您试图调用的函数执行上述任一操作,文档将说明如何使用后台任务或其他方法来完成此操作。您需要运行什么函数?它是计时器、if语句还是位置?查询?iOS应用程序有后台服务。请重新考虑您的逻辑,这样您就不需要在后台执行此操作。您使用的标记不适用于此问题。请查看@Smokedepender,我无法重新思考我的逻辑,因为这是我在应用程序中需要的。正如@Smokedepender所述,iOS不允许你在后台运行像Android这样的活动进程。您需要找到一种不同的方法。那么这一部分如何:“……除非这样做可以改善整体用户体验。”因此,如果您有一些自动化流程可以帮助用户代表用户做一些事情,并在用户确实需要通知时通知用户,他们会阻止这样做,但您仍然可以实现推送通知(例如,Skype消息或其他内容)。好的,那么如果没有合适的方法将AlarmManager转换为iOS,那么有什么替代方法可以实现尽可能多的类似行为呢?我想,对于我的编辑,没有更多的话要说了。无法在后台可靠地运行长时间运行的任务。甚至推送通知(在服务器上计时并发送推送事件)也不能及时可靠地发送到设备。