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

Как избежать skipped frames ? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как установить Gif анимацию в качестве фона? http://www.cyberforum.ru/android-dev/thread1629614.html
Слышал, что есть какие-то библиотеки, но там сильно муторно их прицеплять к проекту
Программирование Android Компиляция приложения в buildTypes - Debug с релизным ключем Добрый день! Подскажите пожалуйста, возможно ли компилировать в АС приложение в Debug-режиме, но используя при єтом для подписи реальный ключ? Мой build.gradle ниже. Релиз делается нормально, а... http://www.cyberforum.ru/android-dev/thread1629602.html
Метод бинарного ввода Программирование Android
нужна небольшая помощь в написании приложения суть: есть три кнопки работающие по принципу бинарного ввода (+1, +2, +4) как их создать, разместить и т.д. я уже разобрался, проблема в том что нужно...
Кастомизировать список Программирование Android
Нужно создать список примерно как на картинке с белым фоном,но на текущий момент для listview могу сделать только как на картинке с черным фоном,т.е. картинка с боку,а нужно что бы вверху была...
Программирование Android Нарисовать круговую диаграмму с разной высотой для каждой части http://www.cyberforum.ru/android-dev/thread1629162.html
У меня тут вопрос вообще не решаемый как по мне, сижу пытаюсь сделать вот диаграмму с разной высотой для каждого из элементов диаграммы. Во вложении то что должно получиться.... В общем пока что...
Программирование Android Не работает цик(или indexOf() Суть кода ниже в том, чтобы находить в строке сочетания символов "ccc" и в них вставлять другой символ. Но программа исправляет только одно сочетание ccc(например в строке "сссaccc" получится... подробнее

Показать сообщение отдельно
gigs
8 / 9 / 1
Регистрация: 21.12.2011
Сообщений: 397

Как избежать skipped frames ? - Программирование Android

31.12.2015, 20:30. Просмотров 237. Ответов 1
Метки (Все метки)

Добрый день, помогите решить проблему, я создал метод table() который генерирует таблицу. Вот код:

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
public void table(){
    ScrollView scrollView = new ScrollView(this);
    HorizontalScrollView horizontalScroll = new HorizontalScrollView(this);
    TableLayout tableLayout = new TableLayout(this);
    tableLayout.setBackgroundColor(Color.BLACK);
 
    LayoutParams cellsParam = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            LayoutParams.MATCH_PARENT);
    cellsParam.setMargins(1, 1, 1, 1);
 
    for(int i = 0; i < 600; i++){
        TableRow row = new TableRow(this);
            TextView wayTextView = new TextView(this);
            wayTextView.setText("text" + i);
            wayTextView.setBackgroundColor(Color.WHITE);
            wayTextView.setGravity(Gravity.CENTER);
            row.addView(wayTextView, cellsParam);
 
            tableLayout.addView(row);
        }
    horizontalScroll.addView(tableLayout);
    scrollView.addView(horizontalScroll);
    setContentView(scrollView);
}
Проблема в том, что когда я его вызываю в onCreate(), в логах появляется сообщение: I/Choreographer: Skipped 32 frames! The application may be doing too much work on its main thread."

В гугле я узнал что для избежания подобного сообщения нужно использовать AsyncTask, но я не знаю как в AsyncTask реализовать создание таблицы не в UI потоке. Я не могу вызвать метод table() в doInBackground(), потому что тогда мне будет выдавать ошибку "Only the original thread that created a view hierarchy can touch its views", но я так же не могу вызвать метод table() в onPreExecute() или в onPostExecute() потому что опять получу skipped frames.

Посоветуйте что можно сделать ? а то я же третий день голову ломаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru