0

アプリにバックグラウンド タスクを実装しようとしています。実装する前に、以下に示すように簡単な例を挙げたいと思いました。カウンターを置いただけで、それがカウントされるかどうかを確認したいと思います。ただし、プロセスと呼ばれる私のメソッドは起動しません。私は何が欠けているのだろうか。

- (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 mulitasking
            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");
                pollingTimer2 = [NSTimer scheduledTimerWithTimeInterval:0.1
                                                                target:self
                                                              selector:@selector(process)
                                                              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
            });
        }
    }

}

-(void) process
{
    county= county+1;
    NSLog(@"%d,county",county);

}
4

1 に答える 1