2

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)?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62

2 Answers2

4

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.

Ilanchezhian
  • 17,426
  • 1
  • 53
  • 55
  • In my app has a button that opens the browser and my application was for background. I just want to close the app when the home button is clicked. Thanks for helping me. – Wesley Belarmino Jul 08 '11 at 13:50
  • To close the app, just call exit(0)... Before that if u want to store anything like settings, save it... – Ilanchezhian Jul 08 '11 at 15:01
0

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).

Community
  • 1
  • 1
Cyrille
  • 25,014
  • 12
  • 67
  • 90