簡體   English   中英

iOS應用程序進入后台運行,並有返回到前台的問題

[英]iOS application goes to background and has problems to return to foreground

我的應用程序觸發了iPhone Dialer,並通過App Delegate進入后台。 在AppDelegate.m文件中的某個位置稱為:

- (void) applicationDidEnterBackground: (UIApplication *) application
{
    [self terminate];
}

完成我的外部應用程序(撥號程序)后,該應用程序將再次啟動,但是大多數GUI部分均無響應。

它會響嗎? 我該如何調試此問題? 讓我知道您是否需要更多信息。

更有幫助。 該應用程序是一個通訊錄,每個條目都是可撥號的,單擊時將調用iOS應用程序。 在通話期間,我希望能夠打開我的應用程序以瀏覽信息

當您進入后台時,會得到applicationdidEnterBackground,但是發生這種情況時,您是要完全退出應用程序嗎? 比這樣做更好的是,有一個info.plist鍵可以告訴操作系統不要進入后台“應用程序不是在后台運行的”。 這將更加優雅地終止您的應用程序。

我假設您在這里的主要問題是您不考慮被暫停的影響。 請看到以下問題: iOS 4從后台恢復

然后考慮閱讀應用程序狀態周期,您可以在此處找到本文中重要的內容:

為了幫助減少應用程序的內存占用,當應用程序移至后台時,系統會自動清除代表您的應用程序分配的一些數據。

  1. 系統清除所有Core Animation層的后備存儲。 此工作不會從內存中刪除應用程序的圖層對象,也不會更改當前的圖層屬性。 它只是防止了這些圖層的內容出現在屏幕上,這是因為該應用程序無論如何都不應該在后台發生。
  2. 它刪除所有對緩存圖像的系統引用。 (如果您的應用沒有強烈引用這些圖像,則它們隨后會從內存中刪除。)
  3. 它刪除了對其他一些系統管理的數據緩存的強引用

換句話說,您的應用程序狀態可能不是您置於后台時的狀態。 此過程的整個過程太大,無法在此處進行詳細說明,而應通過我上面已鏈接到的Apple提供的文檔進行研究。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM