a memory leak in a situation where some objects are not used by the application any more, but GC fails to recognize them as unused.
GC is automatically done periodically by the JVM.
An android application can only be terminated by the OS. (safely at least)
if the app is closed by the user, it still runs in the background, once the os decides that it needs to close the application, either to free up some memory or the application stack is full, it will terminate the application and the memory will be freed.
If the application is terminated, all resources used by the application is freed.
99.9% of the time you do not need to call garbage collection on android. The OS takes care of itself. Would probably cause more harm to manually call GC
There are some cases where memory is leaked, but there are workarounds to dispose things in these cases.