问题
How do I identify if the app was in the background when the home button was clicked and not by external events (sms, call, video call)?
回答1:
If the application is sent to background,
applicationDidEnterBackground
will be getting called.
If it is by sms, call , video call, then,
applicationWillResignActive
will be getting called first. U can identify with that.
回答2:
AFAIK there's no way. Look at UIApplicationDelegate documentation, you'll see :
- (void)applicationWillResignActive:(UIApplication *)application
This method is called to let your application know that it is about to move from the active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
There's apparently no way to distinguish an interruption (SMS, call) or an exit (by pushing the Home button).
来源:https://stackoverflow.com/questions/6625134/iphone-identify-home-button-pressed