我需要我的时候应用程序被关闭在后台运行一个计时器,但我一直在读,这是不可能的。 我知道我可以在后台〜运行10分钟,但我需要比这多得多(多达至少2小时)。
我在想,如果有一种方法通过保存定时器的值当应用程序被关闭,当前时间,检索它们当它重新打开要做到这一点,并将它们与当前的时间,以获得差异。 然后,我可以重新启动定时器,并添加值在一起。
任何人有任何建议,我怎么能做到这一点?
我需要我的时候应用程序被关闭在后台运行一个计时器,但我一直在读,这是不可能的。 我知道我可以在后台〜运行10分钟,但我需要比这多得多(多达至少2小时)。
我在想,如果有一种方法通过保存定时器的值当应用程序被关闭,当前时间,检索它们当它重新打开要做到这一点,并将它们与当前的时间,以获得差异。 然后,我可以重新启动定时器,并添加值在一起。
任何人有任何建议,我怎么能做到这一点?
正确的做法是保持定时器运行的假象,实际上并没有保持它运行。 有两个方面的:
应用程序离开前台之前,应保存有关的定时器(例如或者,如果你计数或时间的计时器应该停止,如果您要倒数计时开始的时间)的信息。 您可以使用各种不同的技术来保存该信息(例如一个plist中,密钥归档,核心数据等)的永久存储。
然后,当应用程序再次启动,检查节省了时间和重建UI从适当的状态重新开始计时。
如果您要倒数一段时间(例如,你希望让用户知道什么时候具体的时间点已经达到,即使应用程序没有运行),你可以使用一个本地通知。 查看本地和远程通知编程指南 ,专注于本地通知。