gpt4 book ai didi

iphone - 如何防止我的计时器应用程序被 iOS 终止

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:45:49 26 4
gpt4 key购买 nike

我有一个计时器应用程序,它会无限期地计数(直到用户停止计时器)。它的工作原理与默认的 iOS 时钟秒表非常相似。

我已阅读有关成为负责任的后台应用程序的文章。我没有发生任何 UI 更改,当应用程序进入后台时停止计时器,并在返回前台时恢复计时器。该应用程序确实每 30 分钟左右发送一次本地通知,提醒用户休息一下。

问题:毫无疑问,我的应用会在几个小时后(2-6 小时左右)终止,并且当前计时器和信息丢失。

我尝试过的事情:

-如前所述,我更改了我的应用程序以遵循成为负责任的后台应用程序的准则(在我让计时器 UI 计数并运行计时器之前,即使在后台时也是如此)。我认为这会解决问题,因为我的应用程序不会占用太多内存或执行任何密集型任务。

-我还尝试在 ApplicationWillTerminate 中保存当前计时器的数据(到 NSUserDefaults),然后在 DidFinishLaunchingWithOptions 上恢复它。它似乎不起作用。这几乎就像我的应用程序被强制退出或其他什么,因为如果 ApplicationWillTerminate 被调用然后它会保存数据并在应用程序再次启动时恢复它。谜团。

-目前我正在 ApplicationDidEnterBackground 上保存 NSTimer 开始时间的 NSDate,使计时器无效,并启动计时器并在 ApplicationWillEnterForeground 上恢复开始时间。仍然没有运气。

问题是这影响了我的一小部分用户——所以这并不是每个人的问题,这让事情变得更加困惑。当然,我仍然想修复它,因为它是一个非常蹩脚的错误——我自己也遇到过它(在 iPhone 5 上),所以它不一定是旧 iPhone 内存不足或其他问题。

这真的让我感到困惑,我已经完成了我的研究并且还很好地搜索了堆栈溢出问题并且似乎没有找到任何可以帮助我的东西。

如有任何帮助,我们将不胜感激,请随时提出更多问题或告诉我进行澄清。

最佳答案

applicationWillTerminate 基本上不会被调用。当您的应用程序处于后台并且从内存中删除时,它不会被调用。如果一段时间未使用,您应该预料到您的应用会从内存中删除。 “一会儿”有多长取决于设备当时正在做什么...最好使用 applicationDidEnterBackground:applicationWillResignActive:

关于iphone - 如何防止我的计时器应用程序被 iOS 终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18729754/

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