我正在开发一个警报应用程序。当警报播放声音时,如果应用程序处于打开状态(前景),则执行
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
方法&警报声成功播放。
但是,如果我的应用程序处于非活动状态/后台状态,那么在播放警报声时,则不会调用上述方法。
所以有任何方法可以让我在后台播放闹钟声。目前,当我的应用程序处于后台时,通知才会到达&没有声音/歌曲正在播放。
以下是我的代码
-(void)application:(UIApplication *)application didReceiveLocalNotification(UILocalNotification *)notification
{
musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
[musicPlayer setQueueWithItemCollection:collection];
[musicPlayer play];
[self showReminder:@"Alarm ON!"];
}
- (void)showReminder:(NSString *)text
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alarm"
message:text delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Snooze",@"Ok",nil];
[alertView show];
}
我只是想知道当应用处于非活动状态/后台时如何播放歌曲,还会显示警报以停止/延后闹钟。
请帮帮我。
答案 0 :(得分:3)
前景: -application:didReceiveLocalNotification:
背景: -application:handleActionWithIdentifier:forLocalNotification:completionHandler:
但Apple
建议
答案 1 :(得分:0)
以下是我的代码,你可以尝试一下!
- (void)applicationDidEnterBackground:(UIApplication *)application{
musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
[musicPlayer setQueueWithItemCollection:collection];
[musicPlayer play];
[self showReminder:@"Alarm ON!"];
}