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

雨燕双飞 提交于 2019-12-18 14:31:48

问题


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

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?


回答1:


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



回答2:


My answer for new modern visitors...

Swift variable : Simply put this any where outside classes to check for app active state .

var isApplicationActive:Bool {
    get {return UIApplication.sharedApplication().applicationState == .Active}
}

so your code in swift will be

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
    if isApplicationActive {
        //Change badge number ...
    } else {

    }
}


来源:https://stackoverflow.com/questions/6730531/objective-c-how-to-check-if-application-is-currently-active-i-e-user-is-using

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!