I have an old app which did many UI initialization work in viewDidLoad of various views. In iOS4 home button just put the app in background so viewDidLoad won\'t get called
Try disabling backgrounding. Apple has this in their documentation
http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html
you have to look up to the UIApplicationDidBecomeActiveNotification i think, but in the uiapplicationdelegate-protocol, there are even some other interesting things for you
or perfectly for you: UIApplicationWillEnterForegroundNotification as a new notification in ios4 for this problem
Try to check. UIApplicationExitsOnSuspend
There is a key in your app's Info.plist
file called UIApplicationExitsOnSuspend, set it to the boolean YES
, which will essentially revert the home button's functionality to pre-iOS4 and completely exit your app when the home button is tapped.