работает NSTimer или UILocalNotification в фоновом режиме - PullRequest
4 голосов
/ 21 ноября 2011

Как я могу выполнить таймер обратного отсчета на iOS?

Сначала я попробовал NSTimer. Тогда я обнаружил, что NSTimer не может работать, когда приложение входит в фоновом режиме.

Во-вторых, я использовал

counterTask = [[UIApplication sharedApplication]
              beg
inBackgroundTaskWithExpirationHandler:^{
              }];

, чтобы NSTimer работал на фоне. Но потом я обнаружил, что iOS просто позволяет приложению работать в фоновом режиме не более 600 секунд (10 минут). Не могу понять, как дать NSTimer больше 10 минут в фоновом режиме.

В-третьих, я устал использовать NSLocalNotification, и он хорошо работает. Но я хочу приостановить воспроизведение музыки, вызвав метод. Я обнаружил, что UILocalNotification покажет предупреждение, когда придет время. Если вы не нажали кнопку оповещения, метод - (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notification не будет вызван. Я не знаю, как вызвать метод без нажатия кнопки оповещения.

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notification {
    NSLog(@"Recieved Notification %@",notification);
    UIAlertView *alert=[[[UIAlertView alloc] initWithTitle:@"Local Notification" message:@"message"
                              delegate:nil cancelButtonTitle:nil
                    otherButtonTitles:nil, nil] autorelease];
   [alert show];
}

Итак, вопрос 1. Как позволить NSTimer работать в фоновом режиме более 10 минут, или же 2. Как вызвать мой собственный метод, не нажимая кнопку оповещения, когда настало время для UILocalNotification.

Большое спасибо !!!

1 Ответ

0 голосов
/ 18 сентября 2012
counterTask = [[UIApplication sharedApplication]
          beginBackgroundTaskWithExpirationHandler:^{
          }];

Поместите что-то в обработчик истечения, который создаст другой таймер, который имеет другой обработчик истечения, который создает другой таймер, который имеет другой обработчик, который делает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...