我使用NSTimer在1秒後調用一個方法,當應用程序在後臺運行並且在將近17分鐘後定時器停止工作。NSTimer在一段時間後在後臺停止
當它回到前臺時它又開始工作了,所以請告訴我爲什麼會發生這種情況以及如何解決問題。
我也嘗試使用執行選擇器與延遲遞歸出於同樣的目的,但再次給出相同的結果。請提出任何解決方案。任何幫助將完全讚賞。
我使用NSTimer在1秒後調用一個方法,當應用程序在後臺運行並且在將近17分鐘後定時器停止工作。NSTimer在一段時間後在後臺停止
當它回到前臺時它又開始工作了,所以請告訴我爲什麼會發生這種情況以及如何解決問題。
我也嘗試使用執行選擇器與延遲遞歸出於同樣的目的,但再次給出相同的結果。請提出任何解決方案。任何幫助將完全讚賞。
Wierd問題 - 我也有這個,但下面的工作對我來說。
//Run the timer on the runloop to ensure that it works when app is in background
[[NSRunLoop currentRunLoop]addTimer:self.timer forMode: NSDefaultRunLoopMode];
從Implementing Long-Running Background Tasks:
對於需要更多的執行時間來實現,你必須要求特定的權限,在後臺運行,他們沒有他們被暫停的任務。在iOS中,只有特定的應用程序類型被允許在後臺運行:
- 應用程式播放音頻內容給用戶,同時在後臺運行,如音樂播放器應用程序
- 應用程序,使用戶瞭解自己的在任何時候,如導航應用
- 應用,支持互聯網語音協議(VoIP)
- 報刊雜誌的應用程序,需要下載和處理新的內容,從外部附件
接收定期更新- 應用程序的位置
如果幾分鐘是不夠的,你不能在backgorund除非它使用一個應用程序運行無限時間:
您可以使用後臺任務爲所有其他應用程序獲取10分鐘的運行時間,或者使用本地通知通知用戶。
我使用位置服務的背景模式,但仍然計時器停止 – Himanshu 2013-05-10 05:08:26
計時器有什麼作用?我的意思是,蘋果的許可後臺任務之一是? – jcesarmobile 2013-05-03 08:46:47
您在構建目標屬性中設置了什麼「所需的背景模式」? – 2013-05-03 08:46:54
我在我的必填背景模式中添加了「位置更新的應用程序註冊」 – Himanshu 2013-05-03 09:53:32