我有一个在后台播放音频的应用程序。我正在尝试beginBackgroundTaskWithExpirationHandler
在当前曲目完成后跳到下一首曲目。
这是播放状态更改时调用的代码。即使同一方法中的其他代码在后台成功实现,它也不会记录“beginBG called”。
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[self ffwButtonPressed:ffwButton];
NSLog(@"beginBG called");
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
ffwButtonPressed
调用几种不同的方法来改变轨道。当那完成...
UIApplication *app = [UIApplication sharedApplication];
if (bgTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
NSLog(@"end bgTask");
编辑:声明
UIBackgroundTaskIdentifier bgTask;
编辑:在 ViewDidLoad
bgTask = 0;