2012-02-14 155 views
0

我在我的應用程序中使用了推送通知。我有這方面的兩個問題:在推送通知期間啓動待機應用程序

  1. 我的應用程序並不會自動啓動,當手機處於待機模式,它接收推notification.Contradiction是,當在待機和快速應用程序通過交換它解鎖啓動應用程序,但當我換了2-3分鐘後說,然後應用程序不會自動啓動。如何讓每次都可以發佈?

  2. 我想在推送通知期間增加振動時間。目前它幾乎不會振動1秒。

回答

0

1)睡眠/待機的概念不是太棘手;當用戶「退出」你的應用程序時(按回家按鈕),你的應用程序將被暫停並置於凍結狀態(4.x),或完全退出(3.x)。儘管如此,在後者發生在- (void)applicationWillTerminate:(UIApplication *)application方法之前,並且在- (void)applicationDidEnterBackground:(UIApplication *)application方法發生前(都在您的委託類中被調用)之前,您有機會做一些清理操作。 「睡眠」的概念意味着在iPhone OS 3和iOS 4中,當您的應用程序失去焦點時(以及進入短信或警報等時),您將收到以下方法:

- (void)applicationWillResignActive:(UIApplication *)application

真的,大多數應用程序(除了設計爲在後臺工作的應用程序,例如voip,音頻流等)都可以簡單地關閉。但是,如果您需要,也可以暫停應用程序的凍結並要求更多時間來完成任務。

2)您無法使用官方API更改振動持續時間。

您可以多次撥打AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);進行循環或使用NSTimer,但不建議這樣做。它會排出電池,設備可能會從桌面上掉下來。順便說一下,如果Apple認爲您沒有正確使用振動,Apple可能會拒絕您的應用。

+0

感謝您的回答。請回答第1點的問題,我該如何請求更多時間來完成任務?此外,應用程序可能會收到通知,無論何時該應用程序進入後臺,所以如果我要求更多的時間,然後我要求多少時間...因爲它是我不知道的。 – 2012-02-14 06:42:34

+0

蘋果文檔說,應用程序退出後的用戶,該應用程序被給予10分鐘來完成任何待處理的任務。之後,所有資源將暫停該應用程序。檢查這裏更多 - http://stackoverflow.com/questions/8861390/ios-background-downloads-when-the-app-is-not-active – 2012-02-14 06:50:20

+0

好吧,但我只是想知道我可以讓我的應用程序啓動在推送通知的每種情況下(即立即掃描屏幕並在通知一段時間後掃描屏幕)。我的應用程序只是關於「做些什麼任務的時間」(這個任務在本地配置爲鬧鐘,我使用推送通知aa鬧鐘).....請幫助 – 2012-02-15 05:55:36