使用我的應用程序時,屏幕有時會突然莫名其妙地變黑。屏幕仍然通電,如果我使用音量控制器,音量指示器顯示得很好。屏幕突然變黑黑色
來解決這個問題的唯一方法是按home鍵,在這一點上,我看到在我的日誌中看到以下消息:
跳板[15]:無法快照WaveDeck
當我再次打開應用程序時,它很好。
任何人都可以對此有所瞭解嗎?從WaveDeck前
使用我的應用程序時,屏幕有時會突然莫名其妙地變黑。屏幕仍然通電,如果我使用音量控制器,音量指示器顯示得很好。屏幕突然變黑黑色
來解決這個問題的唯一方法是按home鍵,在這一點上,我看到在我的日誌中看到以下消息:
跳板[15]:無法快照WaveDeck
當我再次打開應用程序時,它很好。
任何人都可以對此有所瞭解嗎?從WaveDeck前
更新:
我們使用applicationDidEnterBackground
在應用程序的代表在一個糟糕的方式:要求所有的後臺操作完成了使用beginBackgroundTaskWithExpirationHandler
並保持內部applicationDidEnterBackground
運行主runloop。
這種方式applicationDidEnterBackground
只有在完成所有後臺操作後才結束,無論該應用程序是否重新啓動。
顯然,操作系統無法正確「快照」應用程序,並且在從後臺狀態返回後的某個時間會放置黑屏 - 當代理函數applicationDidEnterBackground
結束時。
我遇到類似的問題。將長時間保存操作放在下一個runloop中,所以applicationDidEnterBackground立即返回,系統的快照機制工作正常。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// don't block ios's snapshoting, avoid screen suddenly turns black
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(saveAppState) object:nil];
[self performSelector:@selector(saveAppState) withObject:nil afterDelay:0];
}
- (void)saveAppState
{
[self longtimeSave];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(saveAppState) object:nil];
}
我喜歡'灑一些光'笑話+1。 – 2012-03-28 16:20:29
但現在嚴重,你的應用程序OpenGL,故事板等? – 2012-03-28 16:21:14
這是一個新的。 +1 – 2012-03-28 17:29:33