gpt4 book ai didi

ios - beginBackgroundTaskWithExpirationHandler 不会过期

转载 作者:行者123 更新时间:2023-11-29 13:17:07 25 4
gpt4 key购买 nike

在连接时,我在连接用户的最后添加了这段代码:

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com