2013-10-25 2 views
1

Я работаю над VoIP-приложением.Приложение VoIP не перезапускается после завершения

Когда мое приложение входит в фон, мой сокет VoIP работает хорошо, и приложение может принимать вызовы от других пользователей, но когда я заканчиваю свое приложение вручную (из многозадачной док-станции внизу экрана iPhone), мое приложение не получает никаких вызовов.

В официальной ссылке Apple говорится, что приложение VoIP будет возобновлено в фоновом режиме при выходе приложения или перезагрузке системы. Я знаю, что мне нужно повторно подключить свой VoIP-сервер в методе didFinishLaunchingWithOptions, и я это сделал, но, похоже, он не работает. Я сомневаюсь, был ли выполнен метод didFinishLaunchingWithOptions, потому что я не видел ни одного журнала, чтобы указать, что (я добавляю NSLog(@"did launch") в первой строке метода didFinishLaunchingWithOptions, но я не вижу текст журнала).

Может ли кто-нибудь мне помочь? Благодарю.

ответ

1

Невозможно получить какое-либо событие после того, как приложение будет завершено, чтобы возобновить его, вам нужно будет снова щелкнуть значок приложения или в случае приложения push-уведомления перезапустить, выбрав уведомление.

Вы можете поделиться ссылкой официального справочного документа Apple, который вы указали?

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

Здесь в документе комментарий как,

«Поскольку VoIP-приложения должны остаться работать, для того, чтобы принимать входящие звонки, система автоматически запускается снова приложение, если он выходит с ненулевой код выхода. (Этот тип выхода может произойти, когда есть давление памяти, и ваше приложение прекращается в результате.) Однако прекращение приложения также освобождает все его сокеты, в том числе тот, который используется для поддержания соединения с VoIP-сервисом. Поэтому, когда приложение запускается, ему всегда нужно создавать свои сокеты с нуля ».

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

+0

Я прочитал здесь ссылку (спасибо за ваш ответ): https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12 – Adiaos

+0

Отредактированный комментарий. –

+0

Большое спасибо ~. Я сделал тест. После того как мое приложение переместилось на задний план, я открою режим самолета. Затем закройте режим самолета через 10 секунд. затем 6 или 7 минут. я увидел журнал 'didFinishLaunchingWithOptions' !!!! ведьма сделать меня так счастлив ..... – Adiaos

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