<< Click to Display Table of Contents >> Navigation: Раздел 7 Расширения языка L9 > Общие и системные объекты > Объект Система (System) > Методы > <Система> УстановитьПриЗавершенииОбработкиСобытийUI() |
Описание:
Метод предназначен для разделения длительных выполняемых операций на этапы, чтобы ОС Android могла обработать накопившиеся события пользовательского интерфейса для предотвращения ошибки “Приложение не отвечает” (ANR).
Метод желательно вызывать в конце процедуры, или в конце функции, или в конце программного модуля.
Практический пример использования можно увидеть на примере модуля Main в конфигурации "Агент Плюс: Мобильная торговля 2.0" версии не ниже 1.0.24.6.3000.
Синтаксис:
УстановитьПриЗавершенииОбработкиСобытийUI (<ОбработчикСледующегоЭтапа>)
SetOnUiEventsProcessedHandler (<HandlerOfNextStage>)
Параметры:
ОбработчикСледующегоЭтапа (HandlerOfNextStage) - процедура (обработчик), вызываемая после обработки ОС Android накопившихся событий пользовательского интерфейса.
Возвращаемые значения:
Нет.
Пример:
Пример ниже показывает разделение некоторой длительной операции на три этапа.
В конце каждого этапа ОС Android обрабатывает накопившиеся события пльзовательского интерфейса и после вызывает следующий этап обработки длительной операции.
// Запуск длительной операции, разбитой на 3 этапа: А, Б, В
Процедура ЗапуситьДлительнуюОперацию()
Глоб.ВывестиВсплывающееСообщение("Начало длительной операции");
// выполнение длительной операции А:
СуммаА = 0;
Для Индекс = 1 По 100000 Цикл // долгие вычисления...
СуммаА = СуммаА + 1;
КонецЦикла;
Система.УстановитьПриЗавершенииОбработкиСобытийUI(ПриЗавершенииОбработкиСобытийUI_1);
КонецПроцедуры
Процедура ПриЗавершенииОбработкиСобытийUI_1()
// выполнение длительной операции Б:
СуммаБ = 0;
Для Индекс = 1 По 100000 Цикл // долгие вычисления...
СуммаБ = СуммаБ + 1;
КонецЦикла;
Система.УстановитьПриЗавершенииОбработкиСобытийUI(ПриЗавершенииОбработкиСобытийUI_2);
КонецПроцедуры
Процедура ПриЗавершенииОбработкиСобытийUI_2)
// выполнение длительной операции В:
СуммаВ = 0;
Для Индекс = 1 По 100000 Цикл // долгие вычисления...
СуммаВ = СуммаВ + 1;
КонецЦикла;
Система.УстановитьПриЗавершенииОбработкиСобытийUI(ПриЗавершенииОбработкиСобытийUI_3);
КонецПроцедуры
Процедура ПриЗавершенииОбработкиСобытийUI_3()
Глоб.ВывестиВсплывающееСообщение("Длительная операция завершена");
КонецПроцедуры