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