【问题标题】:Make OS X Swift application run in the background让 OS X Swift 应用程序在后台运行
【发布时间】:2016-06-07 13:57:03
【问题描述】:

我正在为 OS X 快速制作一个时钟应用程序。我的时钟应用程序中有一个计时器,它的工作方式有点像 iOS 中的那个。我的问题是,每当我将应用程序置于后台或将其最小化时,应用程序在后台运行一分钟左右后就会冻结或停止计数。当我将它带到前台时,它会从停止的地方开始工作。无论如何我可以让我的应用程序在后台运行吗?我已经看过了,但没有找到任何有效的方法。

感谢任何可以提供帮助的人。

【问题讨论】:

标签: xcode swift macos


【解决方案1】:

您是否依靠计时器来“计算”秒数?您应该只使用计时器来触发显示更新。当计时器触发时,您应该检查实际时间并根据该时间计算应该显示的内容,而不是您的计时器触发了多少次。绝不应该让您的应用“从停止的地方开始工作”(如果这样的话,您的意思是它显示的时间与它在后台运行时的时间相同,并从那里重新开始计数)。

可能发生的情况是您的应用程序被放入App Nap。另请参阅Energy Efficiency Guide for Mac Apps

【讨论】:

  • 我想知道如何防止我的应用进入 App Nap。
  • 为什么?如果它只是一个时钟,为什么它在不可见时继续工作很重要?当它可见时,系统会继续给它时间让它更新,但频率会降低。应该仍然足够频繁地更新。但正如我所描述的,您必须以正确的方式进行更新。
  • 呃,可能我的问题没有说清楚,如果是这样,我很抱歉,我不太擅长造句。但我确实说过我有一个类似于 iOS 中的计时器。我希望计时器在后台继续更新。这很重要,如果它没有在后台更新,那么我的应用程序就会变得不可靠并且会得到差评。虽然我的应用程序被称为“时钟”,但我的应用程序有一个计时器、秒表和闹钟,所有这些都需要在后台更新以继续保持准确。我的应用有点像 iOS 中的时钟应用。希望这会有所帮助。
猜你喜欢
  • 2017-03-28
  • 2015-01-04
  • 2012-05-27
  • 1970-01-01
  • 2021-12-22
  • 2012-03-20
  • 2012-10-12
  • 2014-06-09
相关资源
最近更新 更多