2014-04-25 107 views
-2

這個問題可能與其他許多問題重複,但我仍然在問,因爲我真的需要得到它的任何解決方案。讓iOS應用程序永遠在後臺運行

對於iOS之前的版本6,對於那些具有A7芯片的設備。

我有一個與Accelerometer交互的應用程序。我也通過播放聲音文件並將音頻服務設置爲開啓以用於後臺任務來在後臺運行它。

現在,如果任何第三個應用程序播放音樂,它將控制設備的共享音頻會話,這會導致我的後臺線程調用完成處理程序,假定後臺任務已完成。

現在我的應用程序可以被iOS和iOS中斷,如果它在很長一段時間後仍然保留在後臺,我無法與加速度計進行交互。

是否有任何方法/技巧/破解讓我的應用程序一直運行,除非我自己殺了它。

同樣,這是一個重複的問題,但我真的很想與您分享我的問題,以幫助我解決這個問題。

+0

因爲我知道我們不能永遠這樣做。背景應用程序運行是我在iOS中面臨的最困難和最不穩定的概念。 – Tendulkar

+0

根據[Apple](https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072- CH4-SW20) – Yogi

回答

1

Apple is very clear on this

實現長時間運行的後臺任務

對於需要更多的執行時間來實現的任務,你必須 請求特定的權限在後臺運行它們,而不 他們被暫停。在iOS中,只有特定的應用程序類型允許 在後臺運行:

應用程式播放音頻內容給用戶,而在後臺, 如音樂播放器應用程序

應用該記錄的音頻內容,而在背景中。支持互聯網語音協議(VoIP)

應用程序需要下載,並定期處理新的內容

應用程序,使用戶在任何時候他們的位置的通知,如 導航應用

應用

應用程序,從外部附件接收定期更新

收集加速度計數據不上市。因此,你試圖做的事情是不可能的。 「方式,技巧,黑客」往往會很快被發現,並冒犯從App Store中移除的應用程序。

+0

謝謝你的回答。我還有一個小問題,就是在這方面擴大談話範圍。 iOS在一些分鐘後殺死應用程序,對於我的情況它幾乎大於3分鐘,它殺死了我的應用程序和後臺任務完成處理程序調用。現在,如果我在完成處理程序中再次調用相同的Background函數,該怎麼辦? –