Если у вас нет объекта деятельности, вы можете использовать обработчики. Класс «Обработчик» может обновлять пользовательский интерфейс. Дескриптор предоставляет методы для получения сообщений и для запуска. Чтобы использовать обработчик, вы должны создать его подкласс и переопределить handleMessage () для обработки сообщений. Для обработки исполняемых файлов вы можете использовать метод post (); Вам нужен только один экземпляр обработчика в вашей деятельности.
Вы можете отправлять сообщения с помощью метода sendMessage (Message msg) или sendEmptyMessage.
Пример примера
- Пример обработчика
В этом примере мы используем класс «Обработчик» для обновления ProgressBar в фоновом потоке.
Создайте новый проект Android "de.vogella.android.handler" с действием "ProgressTestActivity". Создайте следующий макет "main.xml". Этот макет содержит ProgressBar и устанавливает его внешний вид с помощью стиля.
Измените свою активность на следующую:
package de.vogella.android.handler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.ProgressBar;
public class ProgressTestActivity extends Activity {
private Handler handler;
private ProgressBar progress;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progress = (ProgressBar) findViewById(R.id.progressBar1);
handler = new Handler();
}
public void startProgress(View view) {
// Do something long
Runnable runnable = new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 10; i++) {
final int value = i;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
progress.setProgress(value);
}
});
}
}
};
new Thread(runnable).start();
}
}
Запустите ваше приложение. Как только вы нажмете кнопку, ProgressBar будет обновляться из фонового потока.
Образец от http://www.vogella.de/articles/AndroidPerformance/article.html#concurrency_handler