Intereting Posts
Написание переносимого Java-приложения с использованием JOGL и Android OpenGL Android – Как сделать значок светом на ощупь? Как я могу исключить нижний колонтитул ListView? Как вставить клип YouTube в WebView на Android Android: ListView Selector установлен в null? Плавающая кнопка действия Прокрутите странное поведение Как я могу обеспечить числовую десятичную клавиатуру в Android? Android: обновление контрольной панели для загрузки файлов Android + PhoneGap: android: windowSoftInputMode не работает Я пытаюсь протестировать андроид ссылки с глубоким URL-адресом через adb, чтобы запустить приложение Флеш анимации CSS3 на Android 2.2 (webkit-transform: translate (..) scale (..) в то же время) Как использовать вектор вращения OpenCV и перевод с OpenGL ES в Android? Скопировать изображение в буфер обмена в android Студия Android, где находится файл gradle.properties? Зависимость org.apache.httpcomponents: httpclient: 4.4.1 игнорируется для выпуска, так как может противоречить внутренней версии, предоставляемой Android

Android addView в фоновом режиме

Мне нужно добавить много видов в цикл, в то время как этот фрагмент делает это, приложение также будет иметь ящик навигации и панель действий, где пользователь может делать что-то.

Поэтому я хотел бы, чтобы этот процесс не а) замедлял приложение, блокируя пользователя, б) предпочтительно добавлять представления в фоновом потоке.

Дилемма заключается в том, что я думаю, что андроид не любит просматривать мнения в потоке, отличном от UI, так что для этого лучше всего подходит? Я планирую, чтобы объект просмотра строки выполнения был видимым в представлении фрагмента, в то время как остальные представления генерируются с помощью addView и связанных с ним вычислений

Solutions Collecting From Web of "Android addView в фоновом режиме"

Вместо добавления вида в фоновый поток вы можете расставить работу, опубликовав несколько Runnables в потоке пользовательского интерфейса. Код ниже – это очень упрощенная версия этой технологии, но она похожа на то, как это было сделано в приложении Launcher для Android:

 private void createAndAddViews(int count} { for (int i = 0; i < count; i++) { // create new views and add them } } Runnable r = new Runnable() { public void run() { createAndAddViews(4); // add 4 views if (mMoreViewsToAdd) mTopLevelView.post(this); } }; mTopLevelView.post(r);