Как стать автором
Обновить

Комментарии 29

Подождите, а разве APK собранный под 2.3 не запустится на 4 андроиде в режиме совместимости? Вы ведь имеете в виду именно если собирать под 4 андроид?
Гугл вроде как руку на отсечение дает по поводу обратной совместимости.
У него рук много — ему одной не жалко…
Сами проекты запускаются. Если я закоментирую строчку вызова картинки из интернета, то приложение будет работать. Тут речь не о совместимости.
Как же не о ней, вы же явно пишете:
Представьте себе ситуацию, что в вашем приложении используется загрузка картинки или другого файла из интернета. И часть пользователей, которые обновились до ICS, начинает жаловаться, что ничего не работает. Другая часть пользователей с такой же моделью телефона будет утверждать, что всё прекрасно работает

Однако же, пока вы не указали в target-sdk версию API ICS, то будет работать обратная совместимость.

Хотя, замечу, что подгружать что-либо из сети в главном потоке непрофессионально, как минимум.
Да, это не профессионально, но в демонстрационных целях для себя такое часто используется.
Всё что в Интернете — по дефолту не только для себя :)
Обеспечивается совместимость public API, то есть все классы и интерфейсы которые есть в Android.jar 2.3, будут и в 4.0. Поведение же приложения может отличаться, если в manifest как target api указана 14. В этом случае, напрмер, будет по умолчанию показан Action Bar. Насчет сетевых дел в основном потоке точно не знаю, но думаю, что если target api указан ниже чем honeycomb, то исключения не будет вылетать.
1. Почему бы не просто посмотреть LogCat — сразу была бы видна ошибка и в какой строке, и не надо выводить текст ошибки в TextView.
2. Загружать что-то из сети в UI потоке — зло. Будет тормозить загружаемый ресурс или интернет-будет висеть все приложение, поэтому всегда надо загружать их в отдельном потоке.
Я согласен, что зло. Но в 2.3 это работало. Теперь ошибка заставит переделать примеры. В принципе, в серьезных проектах такой подход и не использовали. А вот в простеньких примерах сплошь и рядом.
Даже в примерах не соит такого делать-люди учатся и пишут тако. только если пример-как не надо делать.
Вы правы, пример получился неважным. Мне хотелось посмотреть на саму возможность загрузки в ImageView из интернета. Будем исправлять
Хорошо. И остальные примеры, в которых есть неверный подход лучше тоже пересмотрите.
Тема такая уже 100500 раз поднималась, раз уж учите молодежь, то учите правильно.
Что ж это за уроки такие, где учат делать I/O в основном потоке…
Челябинские?
Наконец-то будут бороться, плохо что не сразу. Еще могли бы какой-нибудь механизм LogCat.Alert придумать, чтобы в режиме обратной совместимости выдавать в Eclipse (так как в обратной совместимости оно не падает).
есть для этого StrictMode
НЛО прилетело и опубликовало эту надпись здесь
Вот еще один пример когда сначала пишут код и только потом читают документацию, когда ничего не работает. Я бы посоветовал автору для начала причитать все статьи здесь и только потом применять свои знания в реальных проектах. Спасает от многих ошибок.
Единственное что для меня до сих пор не понятно, так это то почему исключение кидается только в Android 3+, ведь могли сделать и раньше.
Можно заметить, что google стало заботить качество приложений совсем не давно. Раньше и гайдлайнов не было. Может настанет то светлое время, когда на маркете появится хотя-бы минимальная цензура.
Вот это было в доках по Андроиду всегда.
Для подобных задач имеет смысл использовать IntentService.
Как из пушки по воробьям.
Для таких задач используется AsyncTask или Thread
мда, сами создали проблему, сами же ее героически решили.
Посмотрел под котом — нет там никаких подробностей…
под котом, обычные другое можно найти.)
НЛО прилетело и опубликовало эту надпись здесь
Ну эм, а то, что у вас зависал раньше интерфейс вас не смущало? И как вы прогресс бар отображали, ну или хотя бы крутящийся значок?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории