Просмотр исходного кода

Fix Android app freeze after calling CloseWindow() (#3067)

Fixed that the Android application was not closed properly after calling `CloseWindow()` and continued to run.
pull/3069/head
Le Juez Victor 1 год назад
committed by GitHub
Родитель
Сommit
675efbda3b
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 4AEE18F83AFDEB23
1 измененных файлов: 20 добавлений и 2 удалений
  1. +20
    -2
      src/rcore.c

+ 20
- 2
src/rcore.c Просмотреть файл

@ -718,6 +718,23 @@ void android_main(struct android_app *app)
// NOTE: Return codes != 0 are skipped
(void)main(1, (char *[]) { arg0, NULL });
// Finish native activity
ANativeActivity_finish(CORE.Android.app->activity);
// Android ALooper_pollAll() variables
int pollResult = 0;
int pollEvents = 0;
// Wait for app events to close
while (!CORE.Android.app->destroyRequested) {
while ((pollResult = ALooper_pollAll(0, NULL, &pollEvents, (void**)&CORE.Android.source)) >= 0) {
if (CORE.Android.source != NULL) CORE.Android.source->process(CORE.Android.app, CORE.Android.source);
}
}
// WARNING: Check for deallocation and ensure no other processes are running from the application.
exit(0); // Closes the application completely without going through Java
}
// NOTE: Add this to header (if apps really need it)
@ -5731,8 +5748,9 @@ static void AndroidCommandCallback(struct android_app *app, int32_t cmd)
case APP_CMD_STOP: break;
case APP_CMD_DESTROY:
{
// TODO: Finish activity?
//ANativeActivity_finish(CORE.Android.app->activity);
// NOTE 1: Call ANativeActivity_finish again to free resources unconditionally.
// NOTE 2: You can deallocate other things that are NativeActivity related here.
ANativeActivity_finish(CORE.Android.app->activity);
} break;
case APP_CMD_CONFIG_CHANGED:
{

Загрузка…
Отмена
Сохранить