I've come across a strange error while programming my iPhone application. Basically when I leave my application in the background and then access it after a long time (i.e. the entire night while I'm sleeping), the viewDidLoad
method seems to be called again even though I did not exit the app (I only double tapped the Home button or I tapped the Home button once) but still left the app in the background. However, if I leave the app on for a short period of time (anytime between a few minutes to a few hours), the viewDidLoad
method is not called again and everything is as it should be. After doing some research, I found that it is because the viewDidUnload
method is called (after the OS finds that the app is suspended for a long time), which calls viewDidLoad
again when we bring the app back up. I found this out through this link: view seems to reload itself but it doesn't seem that there's a way to prevent viewDidLoad
from being called when the viewDidUnload
is called. Is there any way to prevent this viewDidUnload
method from being called again? The thing is I want my app to be running for a long time in the background (i.e. a few days in the background) to collect data. Or, is there no way around this? Any help would be appreciated. Thanks!
EDIT: I have realized that after iOS 5, viewDidUnload
is deprecated but this phenomenon still occurs. Any ideas on how to fix it? Thanks!