2010-11-03 100 views
3

我有基於tabbar的應用程序。當我放入我的plist UIBackgroundModes(我的應用程序應該支持voip)時,GUI不會加載。它在啓動屏幕上很糟糕,並且不加載第一個標籤視圖。當我從info.plist中刪除UIBackgroundModes屬性時,它工作正常。除此之外,卡住時按下主頁按鈕什麼也不做。有人遇到過類似的問題嗎? (模擬器上存在的問題)GUI卡住uibackgroundmodes = voip,音頻

感謝,

納瓦

回答

3

它的出現,這個問題發生在模擬器只,它的工作原理設備......因此,解決辦法(暫時的),在不將UIBackgroundModes放入模擬器版本的info.plist中。

0

你負責裝載/進進出出的背景模式的時候卸載界面。您還需要在退出後臺時相應地更新界面。

iOS在將應用程序置於後臺並在將應用程序置於前臺(在啓動應用程序時有點像Default.png)並顯示一些UIImage緩存之前進行屏幕截圖,可以幫助您獲得屏幕截圖。

這可能值得分享一些代碼。

+0

它在應用程序啓動後的一開始就卡住了。當我從.plist中刪除UIBackgroundModes行時,它只是起作用並加載第一個視圖。 – 2010-11-03 11:18:23

0

支持背景狀態轉換
支持背景狀態轉變爲在IOS 4和以後的應用程序的基本體系結構的一部分。儘管從技術上來說,爲了支持這項功能,唯一需要做的就是與iOS 4及更高版本建立鏈接,但正確支持它需要一些額外的工作。具體來說,您的應用程序委託應該實現以下方法,並在他們每個人採取適當的行爲:

  • 應用中:didFinishLaunchingWithOptions:
  • applicationDidBecomeActive:
  • applicationWillResignActive:
  • applicationDidEnterBackground:
  • applicationWillEnterForeground:
  • applicationWillTerminate:

作爲一個負責任的,多任務感知應用程序,這是他們能夠比前臺應用程序做更多的限制在後臺運行
應用。即使您的應用程序不在後臺運行,您在實施應用程序時仍應遵循某些準則。

  • 不要在代碼中進行任何OpenGL ES調用。您不得創建EAGLContext對象或發出任何類型的任何OpenGL ES繪圖命令。使用這些調用將導致您的應用程序立即終止。
  • [...]

iOS Application Programming Guide

+0

問題從非常開始 - 它不會顯示帶有文本字段和按鈕的視圖!所以在應用之後:didFinishLaunchingWithOptions我仍然可以看到Default.png。按Home按鈕什麼也不做。 – 2010-11-03 12:45:52

0

我也看到了這個bug。這非常煩人。這就好像該應用程序卡在模擬器中並且不會繼續。發生這種情況時,我知道如何「解除」它。

在模擬器中,我只需進入菜單Hardware> Lock,然後再次解鎖手機。現在我停止調試器並再次啓動應用程序。這似乎將它踢回了生活。

幸運的是,這個錯誤不會發生在真實手機上,只發生在模擬器中。