模拟器是否支持背景模式

时间:2013-09-02 08:54:49

标签: ios objective-c

如何开始后台语音处理。模拟器是否支持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
            });
        }
    }

}

4 个答案:

答案 0 :(得分:1)

不,它不支持后台模式。

答案 1 :(得分:1)

要检查设备是否支持多任务处理,请使用以下代码: -

if ([[UIDevice currentDevice] isMultitaskingSupported])

虽然模拟器存在一些硬件限制,包括: -

-Accelerometer
-Gyroscope
- 相机
- 接近传感器
- 麦克风输入
要在设备上测试您的应用,您必须是iOS开发人员计划的成员。要了解有关注册iOS开发人员计划的更多信息,请参阅“应用程序分发指南”中的“注册Apple Developer Program并访问其工具”。 您无法在模拟器上测试所有这些功能

答案 2 :(得分:1)

是的,模拟器支持后台模式,但您必须在项目设置中启用它。您建议查看下面的链接。

Background download sample

答案 3 :(得分:0)

模拟器支持后台模式,但是你的条件(如下所示)将在模拟器和模拟器上失败。因此问题。

  

if([[[UIDevice currentDevice] isMultitaskingSupported])