Ios 在后台处理(发送/接收)UDP数据

Ios 在后台处理(发送/接收)UDP数据,ios,xamarin,background,task,Ios,Xamarin,Background,Task,我正在为iOS/Android开发一个Xamarin应用程序,它将使用UDP发送和接收数据 当应用程序在后台运行时,甚至当屏幕进入睡眠状态时,是否可以执行此操作 很像Facebook Messenger应用程序处于活动呼叫状态时。简短回答(对于iOS):不。后台获取是机会主义的,你不能只是强迫它。远程通知可以远程触发,但处理时间有限 VoIP应用程序使用Apple提供的库来执行这些任务(例如:PushKit、CallKit),还使用VoIP后台模式。看一看。但是,您不能在任何时候都在后台下载内容

我正在为iOS/Android开发一个Xamarin应用程序,它将使用UDP发送和接收数据

当应用程序在后台运行时,甚至当屏幕进入睡眠状态时,是否可以执行此操作

很像Facebook Messenger应用程序处于活动呼叫状态时。

简短回答(对于iOS):不。后台获取是机会主义的,你不能只是强迫它。远程通知可以远程触发,但处理时间有限

VoIP应用程序使用Apple提供的库来执行这些任务(例如:PushKit、CallKit),还使用VoIP后台模式。看一看。但是,您不能在任何时候都在后台下载内容,这是有限制的(在通知、数据处理等方面)


在Android上,您可以使用,它可以在后台执行长时间运行的操作,并且不提供用户界面

最接近Android的服务是或。允许的后台执行模式(摘录):

  • 在后台向用户播放音频内容的应用程序,如音乐播放器应用程序
  • 在后台录制音频内容的应用程序
  • 随时通知用户其位置的应用程序,如导航应用程序
  • 支持互联网语音协议(VoIP)的应用程序
  • 需要定期下载和处理新内容的应用程序
  • 从外部附件接收定期更新的应用程序
声明服务可以让系统知道您使用了哪些服务,但在某些情况下,实际上是系统框架阻止了应用程序挂起

背景提取警告:

启用此模式并不保证系统会给您的应用程序任何时间执行后台抓取


我在这里使用的是同样的东西,似乎唯一可行的方法是使用本机实现。我不太了解iOS,但在android中,您需要访问下载管理器api,因为每个android/设备都有自己的下载管理器。我没有尝试使用UDP,而是使用HTTP下载。如果你对此有所了解,请分享一些信息,因为我也想知道,即使设备正在充电,iOS也是如此吗?我的应用程序需要连接充电器。您是否已向AppStore提交应用程序的版本?我怀疑苹果会允许你强制将设备插入到inNo中,目前还没有。为什么会是这样?我认为如果设备正在充电,那么后台操作可以延长使用时间。我认为我在其他应用程序中没有看到这样的限制。后台使用的唯一允许的用例是上面链接中记录的那些