我正在iOS5上编写一个VOIP应用程序,我试图了解实际通信如何在后台保持活跃。我知道套接字在单位时间内可以获得的最大唤醒次数。我的问题是我的套接字连接收到太多唤醒消息,因为应用程序因崩溃消息而终止:在300秒内超过15次唤醒我真的不明白的是,如果套接字在每段时间内可以接收的数据量有限制,那么套接字如何能够通过它不断地发送和接收数据(用于VOIP需求)?假设套接字正在接收后台发生的语音对话的语音数据。语音数据不是应该通过套接字连接吗?如果是这样,如果套接字在单位时间内可以进行的事件有限制,它如何工作? 最佳答案 VOIP应用在后台的
当我从后台删除应用程序(使用开发人员APNS)时收到VoIP推送通知时,我的应用程序会唤醒大约10分钟。当我做同样的事情时,只是这次使用生产APNS,我的应用程序会唤醒8-10秒。那里有什么诀窍?为什么应用程序的生产版本至少30秒不能被唤醒?有什么方法可以延长唤醒时间,因为10秒不足以完成我必须做的所有工作?编辑最后后台时间没问题。当完全删除表单背景并被voip通知唤醒时,我的应用程序崩溃了。我在想这不是崩溃而是执行时间有限。当我修复崩溃时,一切正常。 最佳答案 如果您想在应用程序处于终止状态时在后台调用您的应用程序。然后你可以根据
如何使用蓝牙信号(BLE)从关闭状态(甚至不是挂起或后台状态)唤醒我的iOS应用程序。这可能吗? 最佳答案 没有。无法通过蓝牙信号打开应用程序。你需要一些东西得到回应。如果您的应用处于事件状态或后台状态,这将处于事件状态。 关于ios-用核心蓝牙唤醒我的iOS应用程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/40671099/
我已经设法让显示器立即进入休眠状态pmsetdisplaysleepnow在终端中,但是为了唤醒显示器我只找到了pmsetschedulewake"12/24/200900:00:00"如果我尝试从现在开始至少10秒之前安排任何事情,这将无法工作。有没有办法以编程方式唤醒Cocoa中的显示?有人建议使用IOPMAssertionDeclareUserActivity,但我找不到这方面的任何示例,所以我很挣扎。顺便说一句,我正在使用Swift,但也欢迎使用ObjectiveC代码。 最佳答案 得到它的工作:IOPMAssertionI
当屏幕保护程序在第4代AppleTV上启动时,我有一个应用程序被隐藏(但仍在后台运行)。当在后台运行的应用程序中发生事件(更新到我正在长轮询的端点)时,如何将应用程序调到前台(隐藏屏幕保护程序)? 最佳答案 我认为没有任何办法可以做到这一点。当屏幕保护程序运行时,您的应用程序仍然可以是前台应用程序,但它将处于非事件状态。这类似于用户在使用应用程序时锁定屏幕时在iOS上发生的情况。与iOS锁屏一样,处于此状态时用户可能正在积极使用系统。例如,您可以在不关闭屏幕保护程序的情况下使用Siri。
虚假唤醒会影响对Thread.sleep(x)的调用吗?显然,计时器不是100%精确(导致唤醒时间略有不准确),但它是否受到虚假唤醒问题的影响? 最佳答案 你问的是Thread.sleep()是否受相同的spuriouswakeup影响已记录影响Object.wait(long)的问题,对吗?答案是没有记录在案的与Thread.sleep()相关的虚假唤醒。您是对的,当您请求N毫秒时,对于您究竟会睡多久并没有硬性保证。当然,Thread.sleep()在线程中断时终止。 关于java-虚
我有许多线程等待一个事件,执行一些操作,然后再次等待该事件。另一个线程将在适当的时候触发该事件。我想不出一种方法来确保每个等待线程在设置事件时恰好触发一次。我目前设置了触发线程,睡了一会儿,然后清除它。不幸的是,这会导致等待线程多次获取set事件,或者根本没有。我不能简单地让触发线程生成响应线程来运行它们一次,因为它们是对来自其他地方的请求的响应。简而言之:在Python中,我怎样才能让一个线程设置一个事件并确保每个等待线程在事件被清除之前恰好对事件执行一次?更新:我试过使用锁和队列来设置它,但它不起作用。这是我拥有的:#Globals-usedtosynchthreadswaitin
我的LAN上有一台仪器每5-10毫秒发送一个UDP数据包。在我的应用程序中,我有一个读取器线程,它在启动时分配一个带有大缓冲区的套接字,然后进入无限循环以读取累积的数据包,解析它们,将它们写入后台处理程序,然后休眠半秒钟(time.sleep(0.500)).我有几个懒惰的数据消费者,其中大部分进行归档或生成被动统计数据。但是一个消费者(用于显示)需要最新的数据,并且需要在查询假脱机程序之前唤醒休眠的读者(以读取套接字)。唤醒休眠线程的最佳方法是什么?(或者,有没有更好的方法让线程休眠更容易唤醒?) 最佳答案 我没有注意到threa
我需要一种方法来接收静默推送通知,然后显示本地通知(这样我就可以在向用户显示之前处理数据)有没有办法做到这一点?didReceiveNotification仅在前台调用。我相信该应用程序是在收到推送后在后台启动的。但是,似乎没有解决应用程序何时被杀死的问题。编辑我知道PushKit,但我的应用程序不是VOIP应用程序,它是一个IM应用程序。 最佳答案 您可以使用UIApplicationDelegate方法didReceiveRemoteNotification:当您的应用程序处于前台或后台时接收“静默”推送,但如果您的应用程序被终
我正在后台运行核心蓝牙来扫描设备。它工作正常,当我手动退出应用程序时几乎停止了。Apple文档指出应用程序有时会被外围设备唤醒,这可能会使它从暂停状态持续约10秒左右,进行一些操作然后返回暂停状态。来源:https://developer.apple.com/library/IOs/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackgr