Как определить, что пользователь активно перезапустил приложение, нажав на значок приложения? - PullRequest
1 голос
/ 16 октября 2011

Я хотел бы знать, выходит ли мое приложение на первый план, если пользователь щелкает значок приложения (не имеет значения, запускается ли он заново или становится активным из неактивного)

Но не от входящего звонка, покупки в приложении или чего-либо еще.
(Я обнаружил, что applicationDidBecomeActive вызывали во время процесса покупки в приложении)

1 Ответ

2 голосов
/ 17 октября 2011

Шаг 1:
Когда приложение запущено и ранее не находилось в фоновом режиме (приостановлено), сначала выполняется application:didFinishLaunchingWithOptions:. Этот метод содержит параметр launchOptions - когда он равен nil, приложение запускается с помощью значка в Springboard. В противном случае launchOptions будет указывать причину, по которой было запущено приложение (URL-схема, Push-уведомление и т. Д. Подробнее в документации ).

Шаг 2:
Все идет нормально. Теперь давайте позаботимся о возобновлении. Когда приложение возобновляется (или запускается), в какой-то момент оно вызовет applicationDidBecomeActive в делегате приложения. Хитрость в том, что этот метод вызывается после того, как все возможные причины, связанные с обслуживанием приложения, могут быть возобновлены (запущены). Поэтому все, что вам нужно сделать, это ввести флаг BOOL, который вы установите в методах, обслуживающих причину возобновления работы вашего приложения, и проверьте его позже в applicationDidBecomeActive относительно ожидаемого значения.

Список (я полагаю, неполных) методов, в которых необходимо установить ваш флаг:

  • application:handleOpenURL:
  • application:openURL:sourceApplication:annotation:
  • application:didReceiveLocalNotification:
  • application:didReceiveRemoteNotification:

Остальные методы вы найдете в документации , упомянутой выше. И помните, что applicationDidBecomeActive для Шаг 1 также будет вызван.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...