我有一個具有30秒進程的iphone應用程序,它可以執行一些網絡IO。基本上,當應用程序在後臺,我希望這個過程每小時運行一次(實際上每天一次,但如果失敗,我希望它在一個小時內重新運行)。如何在後臺每小時運行一次〜30秒的進程(iphone應用程序)
有了ios 4的背景特徵,這可能嗎?如果是這樣,怎麼樣?我會遇到什麼限制?
非常感謝!
我有一個具有30秒進程的iphone應用程序,它可以執行一些網絡IO。基本上,當應用程序在後臺,我希望這個過程每小時運行一次(實際上每天一次,但如果失敗,我希望它在一個小時內重新運行)。如何在後臺每小時運行一次〜30秒的進程(iphone應用程序)
有了ios 4的背景特徵,這可能嗎?如果是這樣,怎麼樣?我會遇到什麼限制?
非常感謝!
看看蘋果公司的有關在後臺運行的代碼文檔。
有接近轉到後臺任務的幾種不同的方式。唯一可以完全後臺處理的應用程序是「音頻」,「voip」和「位置」應用程序,這需要在Info.plist中聲明。
如果你的應用程序不是這種類型的,你可能會發現很難做到你想要的東西。有一些方法可以讓你的應用程序在有限的時間內保持活動狀態(也在該鏈接中),但最終你的應用程序將被關閉。
本地通知只會提示用戶打開應用程序 - 您是否真的想每隔30秒在手機上彈出警報?
我相信,使用本地通知,將幫助.... 檢查以下....
應用程序可以創建和安排本地通知,然後操作系統按計劃日期和時間交付它。如果應用程序在前臺未處於活動狀態時傳遞該應用程序,則會顯示警報,標記應用程序圖標或播放聲音 - 無論在UILocalNotification對象中指定。如果應用程序在前臺運行,則沒有警報,徽章或聲音;相反,如果委託實現它,應用程序將調用didReceiveLocalNotification:方法。
委託可以檢查通知的屬性,如果通知在其userInfo字典中包含自定義數據,它可以訪問該數據並相應地處理它。另一方面,如果本地通知僅標記應用程序圖標,並且用戶作爲響應啓動應用程序,則應用程序:didFinishLaunchingWithOptions:方法被調用,但選項字典中不包含UILocalNotification對象。
本地通知允許您從彈跳板彈出警報消息,更新應用圖標的徽章數字,或播放聲音。但它從來沒有給你任何做網絡I/O的機會。 –
嗨,感謝您的信息。我根據以下內容寫了上面的內容1.應用程序:didReceiveLocalNotification:參考討論。他們說這可能是UILocalNotification對象包含的任何東西。 2.在UILocalNotification的Overview部分中:「委託可以檢查通知的屬性,如果通知在其userInfo字典中包含自定義數據,它可以訪問該數據並相應地處理它。」....所以我認爲userinfo字典可以有一個URL來調用,它可以調用它並處理數據,如果過程可以在特定的時間內完成允許後臺進程 – Mohammad
我正在做一些類似的研究,看看this SO answer以防你以前找不到它。諸如DataMan或Data Usage之類的應用程序必須在後臺執行某種類型的定期代碼執行,所以我不能100%確信你所要求的是不可能的。
找到關於後臺處理的信息。看起來有趣,但我很漂亮肯定這種hacky解決方案會讓我被踢出應用商店pronto! – Chris
我做了大量的研究,發現「沉默推送通知「爲我做了詭計。檢出http:// stackoverflow。com/questions/35987366/ios-enterprise-app-how-can-i-make-sure-my-app-runs-in-the-background- –