#android #android-activity #progress-bar
#Android #android-активность #индикатор выполнения
Вопрос:
У меня есть ListActivity, который запускает другое действие на основе выбора из списка. Это второе действие должно загружать данные путем синтаксического анализа из xml-файла, и поэтому существует заметная задержка между тем, когда пользователь нажимает на элемент, и отображением действия.
Между этим процессом пользователь должен быть обозначен индикатором выполнения в нижней части экрана без зависания активности.
Комментарии:
1. используйте UIThread для отображения панели выполнения и AsyncThread для сетевой активности.
2. что именно вы подразумеваете под зависанием. происходит ли сбой приложения?
Ответ №1:
Вам следует взглянуть на AsyncTask
класс, который позволяет выполнять фоновую обработку и публиковать статус обработки без остановки основного действия.
Ответ №2:
Всякий раз, когда вы используете какую-либо библиотеку графического интерфейса пользователя, возникает такая концепция: у вас есть один поток, предназначенный для событий графического интерфейса пользователя, в Java-Swing называемый «Потоком отправки событий» EDT, в Android, как и SWT, он называется UI-Thread. Этот поток отвечает за все события графического интерфейса пользователя и манипуляции с ним. Трудоемкие действия должны выполняться в другом потоке, чтобы пользовательский интерфейс не блокировался / зависал.
(Я думаю, важно понимать эту базовую концепцию разработки пользовательского интерфейса, а не просто использовать AsyncTask и думать, что это что-то специфичное для Android)
Редактировать