Pull to refresh

Comments 22

А теперь переверните устройство :)
Если у Вас AsyncTask запускается в onCreate Activity — получите ошибку.
если у него в манифесте правильно описан параметр «configChanges», то ничего он не получит.
На SDK < 2.0 (если не ошибаюсь) получит
Проверил — ошибка есть.
Как лучше исправить, перенести запуск в onResume или configChanges мучать?
Если по фэншую — то в onResume.
Но я чаще не парюсь и пользуюсь configChanges. Хотя в блоге Андроида сказано использовать только в крайних случаях.
Не знаю, ребята, о чем вы, но при android:configChanges=«keyboardHidden|orientation», ни эмулятор 1.6, ни Desire 2.2 при многочисленных переворотах во время выполнения вышеописанного кода у меня не вывалились с ошибкой.
Если у Вас не игра (которые не все готовы к повороту), то я не вижу смысла блокировать поворот в приложении для пользователя. А на планшетах под Андроидом это очень даже раздражает :)
Ну это не совсем блокировка поворота, это блокировка «перезагрузки» Activity при повороте. Сам интерфейс разворачивается при этом нормально. Это не выход, если вы используете разные layout для landscape и portrait, но в иных ситуациях это очень хороший способ избавится от геморроя с сохранением состояния.
Геморой? В чем? В что надо, так это понять, что асинхронный таск никуда не девается при повороте, в то время как активити перестраивается.
Думаю для начала нужно почитать доку про поворот устройства (что там происходит с Activity).
Есть такой простой компонент, как сервис, который призван выполнять задачи по отправке запросов в сеть. И никаких костылей с «configChanges» (а это на самом деле костыль) делать не придется.
А нельзя ли использовать тэг source=«java»? Очень уж тяжко код читать…
готово, спасибо за замечание
Проверил — ошибка есть.
Как лучше исправить, перенести запуск в onResume или configChanges мучать?
Вместо Runnable можно воспользоваться паттерном Listener или просто сделать HttpClient inner-классом SearchableActivity, тогда можно будет вызывать методы SearchableActivity из HttpClient напрямую.
Если java не родной язык, то можно попробовать Scala. Под андроид я пишу на ней, синтаксис намного удобнее жавовского.
в данном случае java'ы по сути и нету и scala тут ни к чему
UFO just landed and posted this here
Не могли бы вы поподробней обьяснить как вызвать метод Run() родительского класса, по окончании выполнения треда.
Конструкция ((Runnable)ctx).run(); у меня почему то отказываеться работать. Возможно нужно вручную указывать контекст родительского класса?
Спасибо! Статья классная, очень помогла в разработках.
Sign up to leave a comment.

Articles

Change theme settings