NSTimer在一段时间后在后台停止

当应用程序在后台运行1秒后,我用NSTimer调用了一个方法,在17分钟后,定时器停止工作。

当它回来时,它再次开始工作,所以请告诉我为什么会发生这种情况,以及如何解决这个问题。

为了同样的目的,我也尝试在recursion中使用执行select器,但是又一次给出相同的结果。 请提出任何解决scheme。 任何帮助将完全赞赏。

奇怪的问题 – 我也有这个,但下面的工作对我来说。

//Run the timer on the runloop to ensure that it works when app is in background [[NSRunLoop currentRunLoop]addTimer:self.timer forMode: NSDefaultRunLoopMode]; 

从实施长期的背景任务 :

对于需要更多执行时间来执行的任务,您必须请求特定的权限才能在后台运行它们,而不会被暂停。 在iOS中,只有特定的应用程序types才能在后台运行:

  • 在后台播放可听内容的应用,例如音乐播放器应用
  • 随时向用户通知其位置的应用,例如导航应用
  • 支持网际协议语音(VoIP)的应用
  • 报亭应用程序,需要下载和处理新的内容
  • 从外部附件获得定期更新的应用程序

如果只有几分钟的时间是不够的,你不能使一个应用程序运行无限的时间在backgorund, 除非它使用:

  • audio播放
  • 位置服务
  • 外部附件

您可以使用后台任务为所有其他应用程序获取10分钟的运行时间,或使用本地通知通知用户。