<Система> УстановитьПриЗавершенииОбработкиСобытийUI()

<< 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()
 
   Глоб.ВывестиВсплывающееСообщение("Длительная операция завершена");
 
КонецПроцедуры