2013-05-10 2 views
0

Я видел несколько способов «убедиться, что мое приложение снова показано после того, как телефонный звонок, инициированный моим приложением, закончился», но это не то, что я хочу -> то, что я ищу, - это способ, скажем, мое приложение в настоящее время работает в фоновом режиме, осуществляя сетевые коммуникации, а кто-то называет меня, я бы хотел, чтобы мое приложение могло «обнаруживать, когда телефонный звонок закончился и возобновить мои сетевые коммуникации» и/или «запустить/возобновить мой приложение возвращается на передний план, когда телефонный звонок закончился ». Есть ли какой-нибудь способ выполнить что-то подобное и как?Как возобновить (или запустить) мое приложение после завершения телефонного разговора в iOS (мое приложение не * * инициировало телефонный звонок)?

ответ

3

Это не поддерживается в iOS.

Из документов: http://developer.apple.com/iphone/library/documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Reference/CTCallCenter/Reference/Reference.html#//apple_ref/doc/uid/TP40009604

Если ваше приложение активируется, когда событие вызова происходит, система отправляет событие обработчика немедленно. Однако события вызова также могут иметь место, пока приложение приостановлено. Пока он приостановлен, ваше приложение не принимает события вызова. Когда ваше приложение возобновляет активное состояние, оно получает одно событие вызова для каждого вызова, который изменил состояние, независимо от того, сколько состояний изменило вызов, когда ваше приложение было приостановлено. Событие одиночного вызова, отправленное вашему обработчику, после вашего приложения, возвращающегося в активное состояние, описывает состояние вызова в это время.

Лучшее, что вы можете сделать, это обнаружить телефонные звонки, пока ваше приложение открыто.

+1

спасибо! принято. – fatfreddyscat

1

applicationWillResignActive вызывается, когда приложение переходит из активного состояния в неактивное. Поэтому, если вы получаете вызов, этот метод вызывается до того, как ваше приложение будет заинсталлировано.

  • Используйте этот метод для приостановки любых текущих задач и сохранения любых необходимых параметров.

applicationDidBecomeActive вызывается, когда приложение снова активируется.

  • Используйте этот метод для возобновления любых приостановленных задач. Пример будет возобновлять ваши сетевые коммуникации
+0

Итак, если мое приложение работает на переднем плане, когда приходит звонок, я согласен с тем, что это работает. Тем не менее, я ищу способ обнаружения вызова в фоновом режиме и, что наиболее важно, когда телефонный звонок заканчивается, перезапустите мое приложение/возобновит мои приостановленные (сетевые) операции. В соответствии с ответом powerj1984 выше, это невозможно. Я буду ждать, чтобы узнать, дают ли другие другие ответы. Но спасибо за ваш ответ !! – fatfreddyscat

+0

Да, powerj1984 верен тем, что вы не можете обнаруживать телефонные звонки, когда ваше приложение работает в фоновом режиме, поэтому невозможно перезапустить приложение при завершении разговора. Вот хорошая ссылка на то, что ваше приложение может сделать, когда задано: https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW20 – VGruenhagen

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