Most likely it happens to avoid implicit state and keep context-dependent components within scope of context holders, e.g. activity, view, fragment etc.
So, if you push application instance into object it is what they call "code smell", because every time you do it you have to deal with the fact that now this component is implicitly dependent on Android Framework dependencies and it becomes way harder to extract reusability from such component.