Android implementation of lifecycle methods can call the superclass implementation after doing any work?

Directly copied from CommonsWare's this answer. So better give him the upvote

Methods you override that are part of component creation (onCreate(), onStart(), onResume(), etc.), you should chain to the superclass as the first statement, to ensure that Android has its chance to do its work before you attempt to do something that relies upon that work having been done.

Methods you override that are part of component destruction (onPause(), onStop(), onDestroy(), etc.), you should do your work first and chain to the superclass as the last thing. That way, in case Android cleans up something that your work depends upon, you will have done your work first.

Methods that return something other than void (onCreateOptionsMenu(), etc.), sometimes you chain to the superclass in the return statement, assuming that you are not specifically doing something that needs to force a particular return value.

Everything else -- such as onActivityResult() -- is up to you, on the whole. I tend to chain to the superclass as the first thing, but unless you are running into problems, chaining later should be fine.

But if there is no dependancy, then call the superclass methods anywhere you want.


When I interested about this problem, I found this rule:

during any kind of initialization, let the super class do their work first; 
during any kind of finalization, you do your work first

This is logical)