Lo he intentado pero no he trabajado más de 180 segundos en iOS 7 y Xcode 4.6.2. por favor, ayúdame
UIBackgroundTaskIdentifier bgTask = UIBackgroundTaskInvalid; UIApplication *app = [UIApplication sharedApplication]; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; }]; NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:20 target:self selector:@selector(timerMethod) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; -(void) timerMethod{ NSLog(@"in timerMethod"); }
A menos que habilites uno de los Background modes
, no funcionará.
Tienes alrededor de 10 minutos de ejecución de fondo luego de que el temporizador es detenido por ios.
El temporizador no se activará después de que la aplicación esté bloqueada (iOS7), ya que ios suspende la aplicación en primer plano y bgTask
no volverá a recibir el disparo.
Hay algunas soluciones, considere verificar la siguiente pregunta:
iphone – NSTimers en el fondo
¿NSTimer progtwigdo cuando la aplicación está en segundo plano?
NSTimer en el fondo está trabajando