如何开始后台语音处理。模拟器是否支持iOS中的背景模式。
这是我启动后台进程的代码。但是当我按下主页按钮录制停止时,它不起作用。
-(void)applicationDidEnterBackground:(UIApplication *)application
{
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]) { //Check if our iOS version supports multitasking I.E iOS 4
if ([[UIDevice currentDevice] isMultitaskingSupported]) { //Check if device supports multitasking
UIApplication *application = [UIApplication sharedApplication]; //Get the shared application instance
__block UIBackgroundTaskIdentifier background_task; //Create a task object
background_task = [application beginBackgroundTaskWithExpirationHandler: ^ {
[application endBackgroundTask: background_task]; //Tell the system that we are done with the tasks
background_task = UIBackgroundTaskInvalid; //Set the task to be invalid
//System will be shutting down the app at any point in time now
}];
//Background tasks require you to use asyncrous tasks
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Perform your tasks that your application requires
NSLog(@"\n\nRunning in the background!\n\n");
NSString *pollingTimer2 = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(recordPauseTapped:)
userInfo:nil
repeats:YES];
[application endBackgroundTask: background_task]; //End the task so the system knows that you are done with what you need to perform
background_task = UIBackgroundTaskInvalid; //Invalidate the background_task
});
}
}
}
答案 0 :(得分:1)
不,它不支持后台模式。
答案 1 :(得分:1)
要检查设备是否支持多任务处理,请使用以下代码: -
if ([[UIDevice currentDevice] isMultitaskingSupported])
虽然模拟器存在一些硬件限制,包括: -
-Accelerometer
-Gyroscope
- 相机
- 接近传感器
- 麦克风输入
要在设备上测试您的应用,您必须是iOS开发人员计划的成员。要了解有关注册iOS开发人员计划的更多信息,请参阅“应用程序分发指南”中的“注册Apple Developer Program并访问其工具”。
您无法在模拟器上测试所有这些功能
答案 2 :(得分:1)
是的,模拟器支持后台模式,但您必须在项目设置中启用它。您建议查看下面的链接。
答案 3 :(得分:0)
模拟器支持后台模式,但是你的条件(如下所示)将在模拟器和模拟器上失败。因此问题。
if([[[UIDevice currentDevice] isMultitaskingSupported])