ios如何在后台运行警报声
Posted
技术标签:
【中文标题】ios如何在后台运行警报声【英文标题】:ios how to run the alarm sound in background 【发布时间】:2014-12-03 07:00:19 【问题描述】:我正在开发一个闹钟应用程序。在闹钟播放声音时,如果应用程序处于打开状态(前台),则它会执行
- (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];
我只是想知道如何在应用处于非活动状态/后台时播放歌曲并显示警报以停止/暂停闹钟。
请帮帮我。
【问题讨论】:
你让它工作了吗? 【参考方案1】:对于前景: -application:didReceiveLocalNotification:
对于背景: -application:handleActionWithIdentifier:forLocalNotification:completionHandler:
但Apple
建议这样做,
Note: An alarm is not intended to serve as a UILocalNotification. An alarm requires you to create an event or reminder that is visible in the user’s Calendar or Reminders app. A UILocalNotification is better suited for general purposes that don’t involve the Calendar database.
Apple Documentation about Configuring Alarms
【讨论】:
【参考方案2】:下面是我的代码,你可以试试看!
- (void)applicationDidEnterBackground:(UIApplication *)application
musicPlayer = [MPMusicPlayerController applicationMusicPlayer];
[musicPlayer setQueueWithItemCollection:collection];
[musicPlayer play];
[self showReminder:@"Alarm ON!"];
【讨论】:
以上是关于ios如何在后台运行警报声的主要内容,如果未能解决你的问题,请参考以下文章
如何在后台应用程序时从 JavaScript 发出通知/警报 - PhoneGap iPhone/iOS