Procházet zdrojové kódy

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 před 1 rokem
odevzdal GitHub
rodič
revize
675efbda3b
V databázi nebyl nalezen žádný známý klíč pro tento podpis ID GPG klíče: 4AEE18F83AFDEB23
1 změnil soubory, kde provedl 20 přidání a 2 odebrání
  1. +20
    -2
      src/rcore.c

+ 20
- 2
src/rcore.c Zobrazit soubor

@ -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:
{

Načítá se…
Zrušit
Uložit