- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在连接时,我在连接用户的最后添加了这段代码:
UIBackgroundTaskIdentifier myLongTask;
myLongTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{
// If you're worried about exceeding 10 minutes, handle it here
}];
CFRunLoopRun();
[[UIApplication sharedApplication] endBackgroundTask:myLongTask];
我还在build设置中设置,应用程序需要 wifi。这是一个使用套接字的基本客户端。
之前,如果我锁定 iPad,互联网就会中断。现在我期待它在 iPad 锁定后还能保持 10 分钟,但由于某种原因它只是无限期地保持至今。我测量过在我锁定手机并返回并解锁后 30 多分钟内互联网仍然在线,但我的连接仍在流式聊天。
我担心这可能不是应用程序商店接受的合法应用程序行为,尽管我没有设置任何特殊设置我正在阅读关于这是一个 VOIP 应用程序。我刚刚使用了 beginBackgroundTaskWithExpirationHandler,应用程序需要互联网。我还担心如果应用程序确实从未真正休眠,我也会担心长期电池影响,尽管我连接的服务器会在闲置 60 分钟后断开你的连接,因此它不会无限期地保持连接,但如果此循环始终存在,这仍然是一个问题即使在断开连接后也能运行,它可能会使用电池。例如,如果用户离开应用程序并且超过一个星期没有回来,而 iPad 只是锁定了一个星期,它会使用加速电池吗?我的测试还没有进行到那么远,因为这是今天早上的新情况,我在屏幕锁定时关闭连接之前互联网不会关闭。
有什么建议吗?有人知道为什么应用在屏幕锁定 10 分钟后不会休眠吗?
迈克
最佳答案
操作系统可能会杀死你,也可能不会。 10 分钟更像是一个“指南”,但操作系统可能会早晚杀死你。
但 CFRunloopRun 几乎会无限期地运行(只要有任何源被附加或停止)。确保它结束,否则你永远不会结束 bg 任务。
不禁止但不酷!
关于ios - beginBackgroundTaskWithExpirationHandler 不会过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461924/
我正在制作一个应用程序,音频将在后台播放。在以下代码中,bgTask 未声明。 bgTask 应该是一个什么样的对象? - (void)applicationDidEnterBackground:(U
在连接时,我在连接用户的最后添加了这段代码: UIBackgroundTaskIdentifier myLongTask; myLongTask = [[UIApplication s
我正在从服务器下载内容,如果用户将我的应用切换到后台,我会使用 beginBackgroundTaskWithExpirationHandler 继续下载。 我注意到,当我的应用程序转到后台时,状态栏
我有一个在后台播放音频的应用程序。我正在尝试使用 beginBackgroundTaskWithExpirationHandler 在当前轨道结束时跳到下一首轨道。 下面是播放状态改变时调用的代码。它
我对如何以及何时使用 beginBackgroundTaskWithExpirationHandler 感到有些困惑。 Apple 在他们的示例中展示了在 applicationDidEnterBac
我试图在这里关注之前的帖子:Best practice to send a lot of data in background on iOS4 device? 基本上,我有一个名为 getReques
伙计们:)我有一个 iOS 警报应用程序,它使用 UILocalNotification-s 在应用程序进入后台时安排用户定义的警报。由于这(在我的实现中)可能是一个相对较长的过程,因此我需要确保在应
我正在使用 NSURLConnection 下载 500mb 的存档。我想在后台线程上下载它,所以我写道: NSURLRequest *theRequest = [NSURLRequest reque
我的同事对使用后台任务来处理机载数据库中陈旧数据的批量清理持谨慎态度。在我看来,这是进行清理的理想场所,因为它不会影响用户体验。 批量清理核心数据的最佳实践是什么?使用 BG 任务安全吗?即使用 be
我需要在 iOS 应用程序中实现一个后台进程,它每 60 秒执行一次作业。我知道这只能在应用程序处于焦点状态时完成,但我确实希望这项工作在应用程序关闭后在后台完成运行。我将使用 GCD 调度一个计时器
我在 applicationDidEnterBackground 委托(delegate)方法中使用 beginBackgroundTaskWithExpirationHandler 方法来保持 NS
我正在开发一个能够将数据上传到远程端点的 iOS 应用程序。因为良好的用户体验需要在上传时离开应用去执行其他任务,我是否应该使用 beginBackgroundTaskWithExpirationHa
我有一些长时间运行的进程,即使应用程序进入后台我也想运行。我正在调用应用程序的 beginBackgroundTaskWithExpirationHandler: 方法,并在 expirationBl
当我的应用程序进入后台时,我的 AppDelegate 中有以下代码: var backgroundUpdateTask: UIBackgroundTaskIdentifier! func begin
您可以从 beginBackgroundTaskWithExpirationHandler 更新 UI 吗?是否可以使用 perofrmSelectorOnMainThread 或 GCD 来做到这一
我知道有很多关于类似主题的问题,但我认为没有任何问题能完全解决这个问题(尽管我很高兴被证明是错误的!)。 首先是一些背景;我开发了一个在后台监控用户位置的应用程序,它工作正常,但电池使用率很高。为了尝
在“-applicationDidEnterBackground”方法中的 beginBackgroundTaskWithExpirationHandler 代码块中,我实现了 nstimer,如下所
Xcode 6.3.1 ARC 启用,适用于 iOS 8.3 我需要帮助理解我在应用程序进入后台后尝试维护单例共享计时器时遇到的奇怪行为。 以前我不关心这个 NSTimer,因为它是使用后台位置服务在
在我的应用程序中,我正在将图像从 iPhone 上传到服务器。如果用户按下主页按钮同步,应用程序将关闭。 我希望应用程序必须在后台运行直到同步完成。 我的问题是:如何使用“beginBackgroun
我正在启动后台任务,如下所示: UIApplication* application = [UIApplication sharedApplication]; _backgroundTask = [[
我是一名优秀的程序员,十分优秀!