Review of void android_main(struct android_app *app)

This commit is contained in:
Le Juez Victor 2023-06-20 00:58:21 +02:00 committed by GitHub
parent 3a90acf08e
commit 7f35a4ab6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -720,14 +720,11 @@ 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
// Wait for application events before requesting the activity to close
while (!CORE.Android.app->destroyRequested)
{
while ((pollResult = ALooper_pollAll(0, NULL, &pollEvents, (void **)&CORE.Android.source)) >= 0)
@ -736,8 +733,14 @@ void android_main(struct android_app *app)
}
}
// WARNING: Check for deallocation and ensure no other processes are running from the application
exit(0); // Closes the application completely without going through Java
// Finish native activity
ANativeActivity_finish(CORE.Android.app->activity);
// WARNING: Make sure you free resources properly and no other process is running from Java code or other.
// NOTE: You can use JNI to call a NativeLoader method (which will call finish() from the UI thread)
// to handle the full close from Java, without using exit(0) like here.
exit(0); // Close the application directly, without going through Java
}
// NOTE: Add this to header (if apps really need it)