Zhen Zhen - 6 months ago 10
iOS Question

Objective C: How to check if application is currently active (i.e. user is using it)?

I am implementing an APNS push for my app with the following behaviours

1) If app is not active i.e. in background or not launched yet:

User will receive a pop up message and on click will bring him/her to the 3rd tab in the app (see code below)

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

self.tabController.selectedIndex = 3;

}


2) If app is launch and currently active

No popup alert will be shown and the number of new notifications will show as a number on the 3rd tab

enter image description here

My question is how can I determine if the user's app is active?
How and where can I implement the check so that I can set the 2 different behaviours?

Answer
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if (application.applicationState == UIApplicationStateActive) {
        // update the tab bar item
    }
    else {
        self.tabController.selectedIndex = 3;
    }
}