I am trying to figure out some logic in my iOS application delegate. I want to perform some actions in applicationDidEnterBackground and undo them in applicationWillEnterForeground, as suggested. But I want to make sure that, unless the app is terminated, applicationWillEnterForeground is always called after applicationDidEnterBackground. I know that this is generally the case, but I know that there are always fringe cases (authorizations, other interruptions like phone calls, notifications). I think that I have checked most cases and found that applicationWillEnterForeground will always be called to counter applicationDidEnterBackground but I want to see if there are any cases that I am missing where this is not the case.