2011-07-21 54 views
0

我想在我的時鐘應用程序中實現本地通知。基本上我希望每半小時後播放一次音樂文件,就像每隔30分鐘播放一次鐘聲的船鐘一樣。如何初始化本地通知?

任何人都可以給出粗略的想法,即使應用程序進入後臺,我如何實現此功能?

回答

1

我最近使用本地通知的東西,使用了以下功能

//設置本地通知

for (int i= 1 ; i<=10; i++) { //We here set 10 Notification after every 30 minutes from now you can modify it accordingly 

    NSDate *scheduled = [[NSDate date] dateByAddingTimeInterval:60*30*i]; //These are seconds 

    NSDictionary* dataDict = [NSDictionary dictionaryWithObjectsAndKeys:scheduled,FIRE_TIME_KEY,@"Background Notification received",NOTIFICATION_MESSAGE_KEY,nil]; 

    [self scheduleNotificationWithItem:dataDict]; 

} 

凡scheduleNotificationWithItem被定義爲

- (void)scheduleNotificationWithItem:(NSDictionary*)item { 

    UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 

    if (localNotification == nil) return; 

    localNotification.fireDate = [item valueForKey:FIRE_TIME_KEY]; 

    localNotification.timeZone = [NSTimeZone defaultTimeZone]; 

    localNotification.alertBody = [NSString stringWithFormat:NSLocalizedString(@"%@", nil), [item valueForKey:NOTIFICATION_MESSAGE_KEY]]; 

    localNotification.alertAction = NSLocalizedString(@"View Details", nil); 

    localNotification.soundName = UILocalNotificationDefaultSoundName; 

    localNotification.userInfo = item; 

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 

    [localNotification release]; 
} 

最後,你可以處理這些通知爲

如下

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 

// Do the required work you can obtain additional Info via notification.userInfo which happens to be a dictionary 

} 

閱讀開發者文檔會幫助你更瞭解它有助於

+0

嘿謝謝,我今天會試一試。 – leena

+0

是否有可能在發生通知時調用任何函數 – leena

+0

如果你只想播放聲音,那麼你可以localNotification.soundName = FILENAME; (應用程序捆綁中的資源名稱),並在應用程序收到通知時播放此聲音 –

0

您可以使用UILocalNotifications並根據您的要求設置它們的「已觸發」,然後安排通知。這些通知不會打擾您的應用程序是否正在運行或處於後臺,它們將始終顯示爲像alertview一樣。

+0

我想設置日期爲當前日期的stuff.Hope但問題是,我想你可以處理這些通知每半小時進行一次本地通知,比如1:00,1:30,2:00,2:30等等。 – leena