Рассмотрение Выполнение задач во время DidEnterBackground .
В дополнение к обеспечению безопасности фоновых задач длительного выполнения, регистрация может использоваться для запуска задач во время работы приложения. положить в фоновом режиме. iOS предоставляет метод события в классе AppDelegate, который называется DidEnterBackground
, который можно использовать для сохранения состояния приложения, сохранения пользовательских данных и шифрования конфиденциального содержимого до того, как приложение войдет в фоновый режим. У приложения есть приблизительно пять секунд для возврата из этого метода, иначе оно будет прекращено. Поэтому задачи очистки, выполнение которых может занять более пяти секунд, можно вызывать из метода DidEnterBackground
. Эти задачи должны вызываться в отдельном потоке.
Процесс практически идентичен процессу регистрации длительной задачи. Следующий фрагмент кода иллюстрирует это в действии:
public override void DidEnterBackground (UIApplication application) {
nint taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
new Task ( () => {
DoWork();
UIApplication.SharedApplication.EndBackgroundTask(taskID);
}).Start();
}
Вы можете сделать что-то в методе DoWork
. Кстати, я думаю, что Apple не рекомендует работать в качестве службы для получения данных. Как правило, эта фоновая задача предназначена для обработки незавершенной передачи данных, таких как загрузка или выгрузка данных.