Есть ли способ остановить расширение сегодня iOS, отправляющее запросы API в фоновом режиме? - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь остановить отправку запросов API в фоновом режиме, когда расширение сегодня не видно. Запросы API довольно дороги, поэтому я бы хотел оптимизировать количество отправляемых запросов. Куда я должен поместить запрос API, чтобы он вызывался только тогда, когда расширение сегодня станет видимым и не будет вызываться в фоновом режиме?

Я уже пытался установить NCUpdateResultNoData, однако viewDidLoad вызывается в фоновом режиме в этом случае. В viewDidLoad я отправляю запрос API, чтобы обновить расширение сегодня, когда оно станет видимым.

- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
    completionHandler(NCUpdateResultNoData);
}

1 Ответ

0 голосов
/ 22 января 2019

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

Из документов:

// Если виджет имеет локальное состояние, которое может быть загружено быстро, он должен это сделать перед возвратом из viewWillAppear:.// В противном случае виджет должен гарантировать, что состояние и компоновка его представления при возврате из 'viewWillAppear:' будут совпадать с состоянием в последний раз, когда он возвращался из 'viewWillDisappear:', плавно переходя к новым данным позже, когда они поступят. ”

...