Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не могу разобраться с потоками - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android TextView выходит за границы экрана http://www.cyberforum.ru/android-dev/thread830683.html
Здравствуйте. Как правильно указать параметры width/height, чтобы Текст внутри TextView не вылазил за границы экрана и переносился на следующую строку? Я уже пробовал мыслить разумно, затем взял...
Программирование Android Информация и совет Для Android так же как и для IOS программировать надо на Objective-C/C ? Можете подсказать книгу по Objective-C с примерами и т.д. желательно на русском, на английском тоже пойдет? И какой... http://www.cyberforum.ru/android-dev/thread830500.html
Программирование Android Обмен данными между активити
проблема такая есть активити которому должен вернуться результат после работы другого активити. Все бы хорошо но вот в чем проблема , главное активити посылает запрос на результат к другому...
Как хранятся карты 2D игр? Программирование Android
Например есть игра типа "Марио". Где хранить карту? Как загружать?
Программирование Android Возможно ли разрабатывать игры без движков, фреймворков? http://www.cyberforum.ru/android-dev/thread830424.html
На делают игры чтоб не тратить много времени?
Программирование Android Как сделать чтобы listview обновлялось каждый секунд Я хочу чтобы тред каждую секунду вычитал 5 из каждого элемента listview .но числа из listview не обновляется через thread. package com.example.timerimport android.app.Activity; import... подробнее

Показать сообщение отдельно
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 252

Не могу разобраться с потоками - Программирование Android

07.04.2013, 18:55. Просмотров 610. Ответов 8
Метки (Все метки)

Здравствуйте. Никак не могу понять принцип выноса задач в отдельный поток. Смысл прост:
1)есть метод который обновляет адаптер для ListView (назовем метод updateAdapter - делает запрос к БД, обновляет массив и обновляет адаптер, привязанный к листвью) - собственно обновляется и сам лситВью.
2)есть обычный progressDialog - который по логике должен запускаться (progressDialog.show()) перед updateAdapter и закрываться после обновления адаптера (progressDialog.dismiss());
Главное чтобы код притормаживал на момент обновления адаптера, то есть
...код...
запускаем прогрессДиалог \
запускаем обновление адаптера | в это время код программы дальше не выполняется
закрываем прогрессдиалог /
...код...

(данный кусок кода вызываю в onResume() - чтобы обновлять при каждом возвращении к активности)
Вопрос в том - как это лучше реализовать? Понятно, что нужно запускать отдельный поток, в котором и нужно запускать обновление адаптера. Но как это лучше сделать? Можно хотя бы пример?

PS пробовал через AsyncTask - иногда приложение вылетает, ругаясь, что типа адаптер был изменен, но не было сообщено листВью. Создается впечатление, что код продолжает выполняться при запуске второго потока, когда он еще не успел обновить адаптер. Или я что то не понимаю

AsyncTask такой:
Java
1
2
3
4
5
6
7
8
9
10
11
12
protected void onPreExecute() {
             прогрессДиалог.show();
        }
 
        protected Void doInBackground(Void... params) {
                  обновляем массив
}
protected void onPostExecute(Void result) {
            адаптер.notifyDataSetChanged();
            прогрессДиалог.dismiss();
    
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru