2016-07-29 2 views
1

У меня есть следующий код в моем AppDelegate:быстры фон выборки не работает

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {   
     application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)) 

     application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum) 

     return true 
    } 

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 

    completionHandler(UIBackgroundFetchResult.NewData) 
    getData() 
} 

func getData(){ 

    // function that gets certain data from the server and notifies the 
    // user of the info fetched 
} 

Я столкнулся с двумя проблемами здесь:

  1. первая проблема не в том, что фон выборки не выполняется, если Я нажимаю «Отладка» для имитации фоновой выборки. я ждал его бесконечно, и он никогда не назывался сам по себе.

  2. Вторая проблема заключается в том, что когда я нажимаю на симуляцию фоновой выборки, пока мое приложение все еще открыто, симулятор существует, а затем выполняет выбор фона, хотя фоновый выбор еще должен работать даже во время работы приложения и не закрывая его.

У меня отсутствует какой-либо код, связанный с фоновым излучением? Или есть неправильный код? Это единственный код, который я написал, связанный непосредственно с фоновым извлечением, кроме добавления фоновой выборки к возможностям.

ответ

1

Apple предоставляет алгоритм, который определяет, как часто фоновая выборка должна запускаться на основе вашего собственного использования приложения. Если вы используете его много, то он будет извлекаться как можно чаще, но если вы используете как в 4 часа дня каждый день, фоновая выборка должна запускаться раньше, поэтому ваши данные обновляются при запуске.

проверка подробный ответ: Background fetch stops working after about 10 to 14 hours

+0

но если система телефона пользователя решила вызвать фон выборки, когда пользователь использует приложение, делает это близко его/ее приложение в то время они используют его? biz я думал о «имитировать фоновый выбор», аналогичный его исполнению, и это то, что происходило, когда я запускал «имитировать фоновый выбор». –

+0

Если пользователь использует приложение, он не имеет фонового кода, поэтому никогда не будет запущен. – Agreensh

0

Существует опция в настройках iPhone, чтобы отключить фоновое приложение Refresh, он отвечает за вызов фона выборки и он может также отключен глобально для всех приложений.

Проверить Настройки> Общие> История App Обновить

Background App Refresh Settings

Смежные вопросы