A: 

This happens to me as well.

Only in my case it sometimes happens when my app receives local notification.

Kof
A: 

Keep a counter for switches and ignore switches that happen in the wrong order. Something like this:

-(void) handleSwitchToBackground {
  if ( myState == 0 ) { /* do background stuff */ }
  myState += 1;
}

-(void) handleSwitchToForeground {
  myState -= 1;
  if ( myState == 0 ) { /* do foreground stuff */ }
}

If foreground happens before background, neither method does anything.

drawnonward
Thanks, but I don't think this would avoid the black blank screen problem as because the app entered into background state immediately after the foreground state. And this state transition is completely under the control of SDK or OS, when user taps the home button or app icon.
selvam