В моем блоке кода beginBackgroundTaskWithExpirationHandler в «-applicationDidEnterBackground» метод, я NSTimer реализуется следующим образом:метод Селектор NSTimer вызывается дважды в beginBackgroundTaskWithExpirationHandler
UIBackgroundTaskIdentifier taskId = [application beginBackgroundTaskWithExpirationHandler:^{
timer = [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(print:) userInfo:nil repeats:NO];
}];
И Eventhough его repeats:NO
«print'method как селектор дважды, что я вижу через NSLog
.
Этот таймер не вызывается из любого места, кроме как в applicationDidEnterBackground
.
Хм .. Да, вы правы. Я не знаю, что это такое. Итак, я удалил таймер с блоком кода метода «print», и он вел себя одинаково. ТАК, кстати, это было связано с таймером. Но кажется, что блок кода для 'beginBackgroundTaskWithExpirationHandler' выполняется дважды. На самом деле, я использую менеджера CLLocation в своем проекте, может быть, это и есть причина этого? – lasata
Я не могу быть уверен, не используя код. Расскажите, что вы сделали, и, возможно, я могу помочь. –