2012-05-01 40 views
17

Skype update text包含未來:如何重新啓動應用程序如果意外關機

應用程序自動重新啓動,如果意外關閉

如何能夠通過SDK來執行?

+0

你能爲我們提供一個鏈接,Skype的告訴它可以自動重新啓動本身? –

+2

@MaximMikheev當然,在這裏:http://www.iclarified.com/entry/index.php?enid=21659 – Speakus

+1

甚至看這裏:http://itunes.apple.com/us/app/skype/id304878510 ?mt = 8在部分:4.0版本中有什麼新功能 – Speakus

回答

14

據我所知,某些應用程序可以在後臺運行,並可以在特定情況下重新啓動。這是來自蘋果文檔

https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/doc/uid/TP40007125

如果啓動該服務,並且您的應用程序隨後終止,如果一個新的事件到達時,系統會自動將重新啓動應用程序進入後臺。在這種情況下,選擇字典傳遞到應用程序中:didFinishLaunchingWithOptions:您的應用程序委託的方法中包含的關鍵UIApplicationLaunchOptionsLocationKey,表明您的應用程序,因爲定位事件的啓動。

我的意見是:Skype重新啓動遠程通知機制。

更新

嗯,我想我發現了什麼。 @Malek_Jundi是半對的。您的應用程序應失敗非零退出代碼,但它應該被註冊爲VoIP應用。

由於VoIP應用程序需要保持運行以接收傳入呼叫,因此如果應用程序以非零退出代碼退出,系統會自動重新啓動應用程序。 (這可能發生在情況下,有內存壓力,你的應用程序被終止結果。)但是,終止應用也釋放所有的插座,包括用於維持VoIP服務連接的一個。因此,啓動應用程序時,始終需要從頭開始創建套接字。

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12

+0

但用戶必須點擊notificatino消息,以便它不再自動重新啓動... –

+0

向用戶提供警報不是唯一的選擇,AFAIK。無論如何,只是我對這個話題的想法,我不知道Skype是如何處理這個問題的。 – anticyclope

+0

這聽起來很有希望,儘管我還沒有找到關於自動重啓的任何文檔。任何人都可以在應用程序被崩潰/非零返回值終止後確認重新啓動成功嗎? – KPK

1

據我知道它不可能重新啓動您的應用程序..你可以使用exit(1);殺死你的應用程序,但這個不是由蘋果允許的,將被拒絕。也許你做的請從mainViewController一些看法,然後重新添加並復位數據和內容..但做一個真正的重新啓動,我不這麼認爲了一些解決方法。

1

與Skype的,但什麼不知道 - 不幸的是,有沒有辦法重新啓動應用程序。即使如此,也無法退出/退出應用程序。 (關於退出,請參閱this鏈接節「不要以編程方式退出」)

3

Skype的正是這一點:

  1. 寄存器它是TCP套接字的VoIP。
  2. 當非零退出代碼時,應用程序將由iOS重新啓動(因爲VoIP應用程序需要保持運行才能接收來電,系統會在退出時使用非零退出代碼自動重新啓動應用程序。 )。
  3. 然後立即開始後臺任務(重新啓動的應用程序保持暫停狀態)。
  4. 接下來它註冊它的VoIP登錄套接字。
  5. 它記錄早在
+0

你能提供有關第3段的任何蘋果文檔嗎? – Shamsiddin

相關問題