Лучшая практика - нет подключения к сети - PullRequest
0 голосов
/ 16 мая 2011

Как вы думаете, что будет лучшим способом справиться с отсутствием сетевого подключения?

Мое будущее приложение в значительной степени зависит от сети, и без него не будет с этим ничего общего.увидеть приложения, обрабатывающие ситуацию по-разному.

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

Есть ли какие-нибудь лучшие практики?

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

Спасибо

Ответы [ 4 ]

0 голосов
/ 16 мая 2011

Правильная обработка условия «нет сети» полностью зависит от вашего приложения.

Необходимо помнить две вещи: программно закрывать приложение или не обрабатывать случай «случай, когда соединение недоступно» - это обе причины отклонения в процессе проверки Apple.

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

1) использовать инфраструктуру Reachability , чтобы определить, какой тип подключения у вас есть; версия, на которую я ссылаюсь, должна быть более предпочтительной, чем версия от Apple, которая содержит ошибки (поищите в S.O);

2) каждый раз, когда вам нужны данные из сети, проверяйте, установлено ли соединение (т.е. не один раз в начале);

3) всегда информировать пользователя о том, что сеть недоступна, когда это происходит, либо отображая предупреждение, либо лучше показывая какой-либо другой вид значка / сообщения; наименее навязчивый вид отображения лучше, чтобы не нарушать рабочий процесс пользователя;

4) если вы кэшировали данные, и это имеет смысл, используйте кэшированные данные, когда сетевое соединение недоступно (это также сделает приложение «частично пригодным для использования» и в таких случаях);

5) предложить пользователю кнопку для обновления данных, если это имеет смысл для вашего приложения;

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

0 голосов
/ 16 мая 2011

Посмотрите на ASIHttpRequest , у него отличный механизм кэширования.

0 голосов
/ 16 мая 2011

если в вашем приложении нет сетевого подключения, то лучше сказать «Нет сетевого подключения», а не показывать загрузку / обновление и т. Д.

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

Убедитесь, что ваше приложение не должно зависать при недоступности сети.

0 голосов
/ 16 мая 2011

Сначала самое простое: вы должны никогда закрывать приложение самостоятельно, и вы никогда не должны падать.

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

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

Продолжайте пытаться переподключиться в фоновом режиме (то есть слушать изменения доступности сети) и вести себя соответствующим образом.

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

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