Игра, которую я разрабатываю, выполняет некоторую предварительную обработку при первой загрузке, и я хочу показать пользователю «% загрузки», чтобы прояснить, что игра не заморожена.
Я пытаюсьчтобы сделать это, подождите, пока основная форма отобразится для пользователя, а затем отобразите индикатор выполнения обновления при выполнении предварительной обработки.
Чтобы предварительная обработка работала, мне нужно две части информации:
1. Форма имеет окончательный размер (развернутый по всему экрану).
2. Форма видна пользователю.
Вот журнал, показывающий порядок событий в формесрабатывает, когда моя игра загружается.Имейте в виду, что я на самом деле не изменяю размер формы, используя код в любом из следующих событий:
FormCreate
FormResize, clientSize : 0x0
FormResize, clientSize : 0x0
FormResize, clientSize : 0x0
FormResize, clientSize : 0x0
FormShow
FormActivate
FormResize, clientSize : 360x640
В настоящее время я пытаюсь показать экран загрузки с последним изменением размера (тот, который указывает на формуна самом деле размер дисплея), но на этом этапе основная форма все еще не видна (даже после FormShow и FormActivate), и я получаю экран Android по умолчанию «серый градиент», показывающий до тех пор, пока мой код предварительной обработки ужезакончил, никогда не показывая индикатор выполнения.
Я попытался вызвать "application.processmessages" после обновления индикатора выполнения, но это не имеет значения ...
Как определить, когдамоя основная форма действительно видна пользователю Android?
[Обновление]
Я создал небольшое приложение, чтобы продемонстрировать эту проблему:
https://github.com/bLightZP/Test_Splash