2012-11-16 68 views
2

我正在使用後臺任務在用戶暫停我的應用程序時完成一些操作。 這工作正常,但我只注意到,如果用戶在後臺任務完成之前重新激活應用程序,屏幕將保持黑色,並且applicationWillEnterForeground:永遠不會被調用。iOS applicationWillEnterForeground未調用,後臺任務運行時出現黑屏

一旦後臺任務完成一切都很好再調用applicationWillEnterForeground,但有沒有辦法讓應用程序在任務運行時重新激活?

我能找到的所有東西都是後臺任務不斷檢查剩餘時間,並注意到應用程序重新激活時,這會變得非常高。它可以自行結束,應用程序出現,但這仍然意味着該應用程序是黑色半秒左右。

回答

0

快速的問題。你在使用beginBackgroundTaskWithExpirationHandler嗎?

你是否在異步運行實際工作?正如這個答案所示? objective c - Proper use of beginBackgroundTaskWithExpirationHandler

如果沒有,您應該在a-sychornously上運行長時間運行的工作,否則它將作爲主RunLoop的一部分執行。這將確實阻止您的應用程序重繪和響應,直到長時間運行的任務完成。

+0

啊,就是這樣,謝謝。 – ssol