There is no contradiction in these two statements.
onDestroy
is called when you press BACK unless you override onBackPressed
not to call finish()
or do a strange thing of overriding finish
and not calling super.finish()
.
If you don't stop the call to Activity.finish
, onDestroy
is always called.
The other statement speaks nothing about pressing BACK and I can find nowhere under the link you have provided here that
and destroyed only if the system is low on resources.
Additinally to onDestroy
being called when app is low on resources (which strangely doesn't happen on my phone; I get OOM) it is called when 20 other Activities globally (from all applications) are started after this one.
I also encouarge you to check out yet another answer on when onDestroy is called again for a real reason of onDestroy
not being called.