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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Westbam381
2 / 2 / 0
Регистрация: 07.01.2015
Сообщений: 26
#1

AsyncTask тормозит - Программирование Android

17.02.2016, 12:50. Просмотров 1491. Ответов 25
Метки нет (Все метки)

Подскажите пожалуйста, делалю загрузку данных с сервера через asyncTask и возвращаются результат, а дальше делаю обработку этих данных во фрагменте, в приложении всего три таба, загрузка данных происходит в последнем табе, так вот, если нажимаешь на табу где происходит запрос к asyncTask приложение немного притормаживает пока эти данные не загрузятся.
После возврата данных в формате json они циклом помещаются в массив и выводятся через spinner на экран.
По какой причине может происходить подлагивание приложения?

Добавлено через 24 минуты
Прочитал про хендлер появилось подозрение что томозит потому что цикл это для андроид тяжёлый код и его тоже нужно поместить в отдельный поток, я правильно понимаю?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2016, 12:50     AsyncTask тормозит
Посмотрите здесь:

AsyncTask и get() - Программирование Android
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный ProgressDialog. После выполнения задачи нужно выполнить действия....

AsyncTask - Программирование Android
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI нельзя. Когда я пытаюсь обновить вывод (в EditText) в...

AsyncTask - Программирование Android
Использую AsyncTasc class MyT extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void......

AsyncTask - Программирование Android
Здравствуйте, при использовании двух одинаковых методов получается разный результат. AsyncTask в одном случае успешно передает данные в...

Не работает AsyncTask - Программирование Android
Не работает AsyncTask , вот код: private void registerInBackground() { new AsyncTask() { @Override ...

Работа с AsyncTask - Программирование Android
Попробовал использовать AsyncTask и возник вопрос. У меня есть несколько ф-й, которые парсят текстовые файлы и заполняют таблицы БД. ...

AsyncTask+CheckBox - Программирование Android
Здравствуйте, интересует вопрос нужно в функцию AsyncTask послать несколько строк, в зависимости какие Чекбоксы чекнуты. Ну например: ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2417 / 1862 / 583
Регистрация: 12.05.2014
Сообщений: 6,601
Завершенные тесты: 1
19.02.2016, 20:42     AsyncTask тормозит #21
я бы вообще выкинул AsyncTask (если не нужно ничего менять в UI типа прогресбаров) и делал бы все через свои классы implements Runnable, а потом все это скармливал подходящему к задаче ExecutorService
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
19.02.2016, 21:10     AsyncTask тормозит #22
А мне кажется логика нарушена. Если правильно делать то ничего не должно подлагивать.
Westbam381
2 / 2 / 0
Регистрация: 07.01.2015
Сообщений: 26
20.02.2016, 13:40  [ТС]     AsyncTask тормозит #23
Rube,

есть вот такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
nameProductSnipped.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
 
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
 
                        MyData d = itemName[position];
 
                        gageProductSnipped = (Spinner) view.findViewById(R.id.itemsGage);
                        TableLayout tabLayoutProduct = (TableLayout) view.findViewById(R.id.tabLayoutProduct);
 
                        if (position != 0) {
                            gageProductSnipped.setVisibility(View.VISIBLE);
                            tabLayoutProduct.setVisibility(View.VISIBLE);
                        } else {
                            gageProductSnipped.setVisibility(View.GONE);
                            tabLayoutProduct.setVisibility(View.GONE);
                        }
 
                        gageProductAsync GageProduct = new gageProductAsync(PerechodiFragment.this);
                        GageProduct.execute(Constant.URLGAGE + d.getValue());
 
                        gageProductSnipped.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
 
                            @Override
                            public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
                                MyData d = itemGage[position];
 
                                paramProductAsync paramProduct = new paramProductAsync(PerechodiFragment.this);
                                paramProduct.execute(Constant.URLGETID + d.getValue());
                            }
 
                            @Override
                            public void onNothingSelected(AdapterView<?> parent) {
 
                            }
                        });
                    }
 
                    @Override
                    public void onNothingSelected(AdapterView<?> parent) {
 
                    }
                });
Как мне
Java
1
 MyData d = itemGage[position];
Эту перемену использовать дальше по коду, как бы я не пытался у меня не получается

Добавлено через 7 минут
Решил пока остановится на трех асинктасках, решение своей задачи добился, а это в данной ситуации главнее чем чистый и правильный код, приложение для работы пишу чтоб облегчить себе рабочий процесс.
В любом случаи со временем придет понимание что я сделал тут не так и как нужно было сделать)
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
20.02.2016, 16:42     AsyncTask тормозит #24
Этот код мне ничего не говорит, какие то слушатели которые запускают асинктаски, бред вобщем. Или я ничего не понял.
Westbam381
2 / 2 / 0
Регистрация: 07.01.2015
Сообщений: 26
21.02.2016, 00:12  [ТС]     AsyncTask тормозит #25
Rube,
position
Просто подскажите как к этой переменной достучатся не из функций?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2016, 15:02     AsyncTask тормозит
Еще ссылки по теме:

AsyncTask и SQLite - Программирование Android
Здравствуйте! У меня в приложении есть БД SQLite, при нажатие на кнопку загрузки, приложение начинает в базу вносить записи. Структура...

Отмена AsyncTask - Программирование Android
Привет. Есть такой код: @Override protected Void doInBackground(Void... params) { try { Interpret(Source.get()); }...

Exception в AsyncTask - Программирование Android
Доброго всем. Проблема вот в чем: периодически во время выполнения одного из потоков в AsyncTask вылетает следующее: 04-21...

AsyncTask в Fragment и viewPager - Программирование Android
У меня есть ViewPager который состоит из двух листающихся экранов, есть код фрагмента который запускается в этом viewPager (как правильно...

Отмена AsyncTask из FragmentDialog - Программирование Android
Здравствуйте, у меня задача отменить выполнение AsyncTask`a из диалога, который создается в этом таске. new AsyncTask&lt;Void, Void, Void&gt;()...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
21.02.2016, 15:02     AsyncTask тормозит #26
Это порядковая позиция итема в списке. Вне функции она равна позиции курсора из которого формируется список. Но position может только инициализироваться по тапу на итеме. Так что не функцию надо разбирать, а логику.
Yandex
Объявления
21.02.2016, 15:02     AsyncTask тормозит
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru