Removing badge from iOS app icon
If your app becomes active again and is still in the background you should reset the badge count in -applicationDidBecomeActive:
as well:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}
If your app is still running in the background -application:didFinishLaunchingWithOptions:
won't be called.
Likely, -application:didFinishLaunchingWithOptions:
is not being called, because your app is still running in the background. In order to remove the badge count when the app is launched from the background you'll have to reset the badge number in -applicationWillEnterForeground:
, too.
In Swift and In AppDelegate
func applicationDidBecomeActive(_ application: UIApplication) {
application.applicationIconBadgeNumber = 0
}
You can use this codes also.
- (void)applicationDidBecomeActive:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}
or In a specific ViewController
- (void)awakeFromNib {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
Maybe call it in applicationWillResignActive
(in AppDelegate.m
):
-(void)applicationWillResignActive:(UIApplication *)application{
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
}
This will help you to clear badge
if push
come when app is being open. User seeing notification
and you clear it, when he press Home Button
(once or twice). Also it will be clear if app
being closed
(clear after user open it).
Here you can see when this method called.