2012-10-10 136 views
0

我正在爲我的IOS應用程序開發使用cordova 2.1.0。 我連接我的IOS設備到MAC處理器,並安裝/初始化我的應用程序在xcode中運行或從itunes文件夾中拖動它。現在我物理上斷開了設備與處理器之間的連接,並通過設備中啓用的WiFi將通知/消息通過APNS發送到設備。我能夠在設備中成功接收通知。現在過了一段時間,我將設備重新連接到處理器,這導致應用程序再次啓動並再次調用「didFinishLaunchingWithOptions」方法,這是不可取的,因爲啓動/初始化應該只發生一次。這種行爲是隨機的,即。每次當我斷開/重新連接,它不會發生,只是有時。這是爲什麼發生。什麼可能是這種隨機行爲的原因。函數'didFinishLaunchingWithOptions'被不正確地調用

任何幫助將是appreciated.Thanks

+0

您應該閱讀蘋果的iOS編程指南,並真正理解應用程序的生命週期。 – Eiko

回答

1

didFinishLaunchingWithOptions:每天應用啓動時間稱爲。當你從Xcode運行你的應用程序,並斷開設備,它會殺死應用程序。因此,當您在設備斷開連接的情況下啓動應用程序時,它會再次啓動應用程序,當應用程序啓動完成後,該應用程序將調用didFinishLaunchingWithOptions:。如果您從Xcode運行應用程序,並以相同的方式再次運行應用程序,則會發生同樣的情況。

編輯:

不知道,如果是明確的,但didFinishLaunchingWithOptions:如果你退出程序(按home鍵),並把它背不殺死它不叫。

+0

因此,即使我連接設備進行充電,它應該再次調用「didFinishLaunchingWithOptions」函數並再次啓動應用程序。 – clint

+0

如果您在Xcode中運行,斷開連接,重新連接(或不連接)並從設備啓動應用程序(觸摸跳板上的圖標),它會調用。如果你在Xcode中運行,斷開連接,重新連接並在Xcode中運行,它會調用。基本上,正如我所說的,每當應用程序「啓動」時都會調用它*。該應用程序在之前被終止時「已啓動」。當您從Xcode運行並斷開設備,退出應用程序並在多任務欄中手動終止它,重啓時或設備內存不足時,它會被終止。我希望現在更清楚,是嗎? – rdurand

+0

我有一些什麼,看看在xcode中運行是隻爲我作爲一個開發人員。在一天結束時,對於最終用戶,它必須從iTunes下載或從MAC機器上的itunes文件夾拖拽(連接設備)。所以,在這兩種情況下,它不應該再次啓動。否則,它沒有達到目的。我如何確保在這些情況下,它再也不會啓動。 – clint

相關問題