当应用程序被关闭运行中的“背景”计时器当应用程序被关闭运行中的“背景”计时器(Run timer i

2019-05-12 10:31发布

我需要我的时候应用程序被关闭在后台运行一个计时器,但我一直在读,这是不可能的。 我知道我可以在后台〜运行10分钟,但我需要比这多得多(多达至少2小时)。

我在想,如果有一种方法通过保存定时器的值当应用程序被关闭,当前时间,检索它们当它重新打开要做到这一点,并将它们与当前的时间,以获得差异。 然后,我可以重新启动定时器,并添加值在一起。

任何人有任何建议,我怎么能做到这一点?

Answer 1:

正确的做法是保持定时器运行的假象,实际上并没有保持它运行。 有两个方面的:

  1. 应用程序离开前台之前,应保存有关的定时器(例如或者,如果你计数或时间的计时器应该停止,如果您要倒数计时开始的时间)的信息。 您可以使用各种不同的技术来保存该信息(例如一个plist中,密钥归档,核心数据等)的永久存储。

    然后,当应用程序再次启动,检查节省了时间和重建UI从适当的状态重新开始计时。

  2. 如果您要倒数一段时间(例如,你希望让用户知道什么时候具体的时间点已经达到,即使应用程序没有运行),你可以使用一个本地通知。 查看本地和远程通知编程指南 ,专注于本地通知。



文章来源: Run timer in 'background' when app is closed
标签: ios nstimer