summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorLe Juez Victor <[email protected]>2023-06-20 11:01:57 +0200
committerGitHub <[email protected]>2023-06-20 11:01:57 +0200
commit5e1a81555ca130e2c6544add0e2391a8763e7e2a (patch)
treedbac4f7257d964770ae774b4f489b379ff40e2b6 /src
parent3a90acf08ee97ba42bc21decfc52b41c7ef4d68d (diff)
downloadraylib-5e1a81555ca130e2c6544add0e2391a8763e7e2a.tar.gz
raylib-5e1a81555ca130e2c6544add0e2391a8763e7e2a.zip
Review `android_main()` in rcore.c (#3121)
Diffstat (limited to 'src')
-rw-r--r--src/rcore.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/rcore.c b/src/rcore.c
index 27b60ae4..d02ea2b9 100644
--- a/src/rcore.c
+++ b/src/rcore.c
@@ -717,17 +717,17 @@ void android_main(struct android_app *app)
char arg0[] = "raylib"; // NOTE: argv[] are mutable
CORE.Android.app = app;
- // NOTE: Return codes != 0 are skipped
- (void)main(1, (char *[]) { arg0, NULL });
+ // NOTE: We get the main return for exit()
+ int ret = main(1, (char *[]) { arg0, NULL });
- // Finish native activity
- ANativeActivity_finish(CORE.Android.app->activity);
+ // Request to end the native activity
+ ANativeActivity_finish(app->activity);
// Android ALooper_pollAll() variables
int pollResult = 0;
int pollEvents = 0;
- // Wait for app events to close
+ // Waiting for application events before complete finishing
while (!CORE.Android.app->destroyRequested)
{
while ((pollResult = ALooper_pollAll(0, NULL, &pollEvents, (void **)&CORE.Android.source)) >= 0)
@@ -736,8 +736,11 @@ 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
+ // 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(ret); // Close the application directly, without going through Java
}
// NOTE: Add this to header (if apps really need it)