I would like to perform a different action when my app moves to the background depending upon if its moving to that state because there is an incoming phone call, or if its moving to that state because the user has hit the home button.
In both cases the app delegate receives a willResignActive:, then a didEnterBackground: call. Therefore from the app delegate calls alone it would appear its not possible to determine the difference.
Is there some way?
UIApplicationDelegate Protocol has a variety of methods for
Monitoring Application State Changes.Unfortunately (for you), going into the background is going into the background, there is no differentiation as to why. Given Apple’s app design of walling everything off (for security reasons) I don’t see them providing you details about what’s going on on the phone outside your application.
I would certainly question the need for different behavior in those two cases, but I don’t know the details of your app.