Windows Phone - приложение аварийно завершает работу при отключении от ПК

Всякий раз, когда я отключаю свой Windows Phone от ПК (подключенного через USB), и если мое приложение работает, мое приложение зависает на некоторое время, а затем происходит сбой приложения.

Кто-нибудь испытал такое же поведение? Я предполагаю, что проблема связана с переключением подключения ПК на Wi-Fi/GPRS.


person Chintan Shah    schedule 07.09.2011    source источник
comment
Вы отлаживаете свое приложение во время отключения?   -  person Nick Banks    schedule 07.09.2011
comment
Я отлаживаю или нет. Если приложение запущено, оно зависает, а затем вылетает. Это происходит на Samsung Omnia, HTC Trophy и LG-900.   -  person Chintan Shah    schedule 07.09.2011
comment
Используете ли вы подключение для передачи данных?   -  person Nick Banks    schedule 07.09.2011
comment
Я думаю, если телефон подключен к ПК, он всегда будет использовать подключение для передачи данных с ПК. Дайте мне знать, если я ошибаюсь.   -  person Chintan Shah    schedule 07.09.2011
comment
Ваше приложение использует Интернет?   -  person Nick Banks    schedule 07.09.2011


Ответы (3)


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

Это означает, что если вы удалите телефон, приложение по-прежнему можно будет запускать, как обычное загруженное приложение из Marketplace.

если вам нужна более подробная информация, я бы посоветовал прочитать Электронная книга по программированию на WP7, лол

он наполнен полезной информацией и определенно помог мне на моем пути к любви к DEV для WP7.

person Keeano    schedule 07.09.2011
comment
Что вы подразумеваете под безопасным удалением оборудования? - person Chintan Shah; 07.09.2011
comment
Кроме того, если вы подключены к ПК через USB, большинство телефонов Windows не используют Интернет с компьютера, если только они не взломаны для конфигурации вычислительной сети и передачи пакетов AKA Tether. Таким образом, вы постоянно используете подключение для передачи данных, если не подключены к WIFI, попробуйте хотя бы подключиться к WIFI-соединению. - person Keeano; 07.09.2011
comment
На компьютере с Windows вы увидите набор значков в правом нижнем углу, один из которых представляет собой зеленую стрелку с USB-разъемом, щелкните правой кнопкой мыши и безопасно извлеките Windows Phone. - person Keeano; 07.09.2011
comment
В моем случае он использует соединение для передачи данных с ПК без какого-либо взлома. Я могу получить доступ в Интернет без GPRS и Wi-Fi, когда мой телефон подключен к ПК. Я постараюсь безопасно удалить телефон и дам вам знать. - person Chintan Shah; 07.09.2011
comment
Хорошо, даже если это не сработает. Попробуйте подключиться к Wi-Fi, он станет основным сетевым протоколом и даже при подключении к ПК Wi-Fi все равно будет подключен. - person Keeano; 07.09.2011
comment
Здорово. Я проверю и дам вам знать. - person Chintan Shah; 07.09.2011
comment
Как проверить доступность 3G-соединения с помощью WP7 API? - person Chintan Shah; 07.09.2011
comment
Если вы подключены к ПК, он ВСЕГДА будет использовать это соединение вместо Wi-Fi. Когда вы отключаетесь от ПК, он переключается либо на сотовую связь, либо на Wi-Fi, если он у вас есть. Вы потеряете предыдущую связь. Я не совсем уверен, почему вы должны это делать, но я считаю, что вам придется справиться с этим изменением. Все старые TCP-соединения будут разорваны. - person Nick Banks; 07.09.2011

Как говорит gamernb, если вы отключите USB от правильно привязанного Windows Phone (т.е. подключенного к Zune или с помощью утилиты WPConnect), сетевое подключение телефона будет сброшено, а подключения вашего приложения будут разорваны. Затем телефон начнет пытаться подключиться с использованием Wi-Fi или сотовых данных (если они включены), но это может занять довольно много времени.

Вам придется обработать это отключение сети в своем приложении — я обнаружил, что выдергивание USB-кабеля таким образом является хорошим специальным тестом для приложений WP7: выполните действие, которое, как вы знаете, будет использовать сетевое подключение. Затем наблюдайте, падает ли приложение или изящно справляется с этим.

На самом деле вы не гарантируете, что всегда будете использовать подключение для передачи данных ПК: если вы убедитесь, что компьютер не имеет подключения для передачи данных (т. е. вытащите кабель Ethernet, отключите WiFi и т. д.), приложение WP7 сможет использовать сотовые данные или WiFi на вместо телефона.

person Paul Annetts    schedule 08.09.2011

Увы-

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

У вас может быть небольшое зависание, но это лучше, чем сбой .... в основном, когда телефон переключается с ПК на WWAN, это будет небольшая пауза.

используйте класс достижимости и NSLog, чтобы выяснить, что именно происходит.

Я очень надеюсь, что это поможет!

person Keeano    schedule 09.09.2011