Использование методов фона / переднего плана в AppDelegate
-
27-10-2019 - |
Вопрос
Я планирую реализовать в своем приложении многозадачность.
Здесь я вижу много методов, позволяющих сделать это в коде AppDelegate
, например, applicationWillResignActive
, applicationDidEnterBackground
, applicationWillEnterForeground
, ...
Но ... Я не понимаю, как их следует использовать, и почему их нет в ViewController ... И для чего они здесь.
Я имею в виду: когда приложение входит в фоновый режим, я не знаю, в каком представлении находится мой пользователь. И обратно, когда приложение выходит на передний план, как мне узнать, что делать и что я могу вызвать, например, для обновления представления?
Я бы понял, если бы эти методы присутствовали в каждом контроллере представления, но здесь я не вижу, для чего их можно использовать конкретным образом ...
Можете ли вы помочь мне понять, как реализовать эти методы?
Решение
Каждый объект получает уведомление о генеральном коде кода, когда приложение работает в фоновом режиме.Итак, чтобы запустить некоторый код, когда приложение переходит в фоновый режим, вам просто нужно прослушать это уведомление, где вы хотите:
родовое словоНе забывайте отпускать слушателя, когда вам больше не нужно его слушать:
родовое словоИ лучший из лучших, вы можете играть так же, используя следующие уведомления:
-
UIApplicationDidEnterBackgroundNotification
-
UIApplicationDidEnterBackgroundNotification
-
UIApplicationWillEnterForegroundNotification
-
UIApplicationWillResignActiveNotification
Другие советы
Их нет ни в одном из ваших контроллеров представления, потому что iOS использует шаблон проектирования «делегат», при котором вы можете быть уверены, что метод будет активирован в классе (в данном случае - в App Delegate для вашего приложения) при необходимости.
В качестве учебного процесса, почему бы вам просто не добавить NSLog в эти методы, чтобы видеть, когда они увольняются?
родовое слово