iphone – 通过本地通知清除应用徽章

我试图用UILocalNotification清除我的应用程序的“未读”徽章。逻辑上你会认为这将通过将UILocalNotification实例的applicationIconBadgeNumber设置为0来完成。但是它不起作用,applicationIconBadgeNumber的文档说“默认值为0”,这意味着“不变”。“

一旦设置好了,本地通知就没有办法清除徽章?

更新:一些简单的代码:

-(void)applicationDidFinishLaunching
{
    // Set the appication icon badge to 1 in 10 minutes, using a local notification so it works in the background:
    // This works fine.

    UILocalNotification *episodeNotification = [[UILocalNotification alloc] init];
    episodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(60 * 10)];
    episodeNotification.timeZone = [NSTimeZone defaultTimeZone];
    episodeNotification.applicationIconBadgeNumber = 1;

    [[UIApplication sharedApplication] scheduleLocalNotification:episodeNotification];
    [episodeNotification release];


    // Clear the application icon badge in 20 minutes, again using a local notifcation so it works in the background:
    // This doesn't work.  According to the docs for local notification it's not supposed to
    // because (applicationIconBadgeNumber = 0) means "Do not change the badge"
    // I'm looking for an alternative if it exists.

    UILocalNotification *clearEpisodeNotification = [[UILocalNotification alloc] init];
    clearEpisodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(60 * 20)];
    clearEpisodeNotification.timeZone = [NSTimeZone defaultTimeZone];
    clearEpisodeNotification.applicationIconBadgeNumber = 0;

    [[UIApplication sharedApplication] scheduleLocalNotification:clearEpisodeNotification];
    [clearEpisodeNotification release];
}
我有同样的问题。从本地通知设置徽章时,将其设置为0是“不变”的默认值,而从应用程序直接进行操作会将其清除。通过本地通知将其设置为负数解决了问题。

尝试:

clearEpisodeNotification.applicationIconBadgeNumber = -1;
http://stackoverflow.com/questions/5375355/clear-app-badge-with-local-notifications

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iphone – 通过本地通知清除应用徽章