iOS应用程序使用NSTimer与外部附件通信

iOS应用程序使用NSTimer与外部附件通信,ios,background,usb,external-accessory,Ios,Background,Usb,External Accessory,我正在做一个应用程序的初步研究,这个应用程序已经在Android上实现了。应用程序需要能够在插件上执行一些计算,然后按照计算的时间间隔向USB设备发送消息。这些时间间隔可能长达数小时 在Android中,应用程序利用AlarmManager API以这些间隔运行通信代码。然而,由于iOS没有等效的API,我想知道这是否可行。我研究了这个框架,发现它的定义相当模糊。我查看了这些,找到了一些相关的答案,但是他们似乎说USB设备必须启动通信,并且EASession不能在有限的后台状态下运行NSTime

我正在做一个应用程序的初步研究,这个应用程序已经在Android上实现了。应用程序需要能够在插件上执行一些计算,然后按照计算的时间间隔向USB设备发送消息。这些时间间隔可能长达数小时

在Android中,应用程序利用AlarmManager API以这些间隔运行通信代码。然而,由于iOS没有等效的API,我想知道这是否可行。我研究了这个框架,发现它的定义相当模糊。我查看了这些,找到了一些相关的答案,但是他们似乎说USB设备必须启动通信,并且EASession不能在有限的后台状态下运行NSTimer


如果应用程序将“External Accessory”(外部附件)作为后台模式,是否可以设置一个计时器,持续数小时,以触发运行一些代码,从而触发发送到外部附件的消息?或者,只要应用程序从连接的附件接收消息,它是否仅保持在后台模式?

检查此项,当应用程序处于后台时,无法安排代码在iOS上的特定时间执行。@Paulw11,无论该后台模式是否因外部附件而扩展?有iOS中的两种后台模式-您的应用程序可以在后台等待事件,也可以在后台执行代码以响应事件。应用程序可以在后台等待事件很长时间,但如果需要内存或用户可以终止任务,它最终可以被iOS删除。当设备位置更新或推送通知等事件触发后台执行时,您只有几秒钟的时间来处理该事件。通过外部附件框架连接的MFi附件可以向“唤醒”发送事件正如我在前面的评论中所述,您的应用程序在后台有几秒钟的时间来处理更新,但外部附件后台模式不提供在后台扩展、连续执行代码,这包括等待NSTimer启动