Basically you have 2 types of Context - the Activity Context and the Application Context.
It's not necessary to use only one Context for everything. There's problems if you use one Context in every case you need Context.
It's best to follow something like this - use Activity Context inside the Activity and the Application Context when passing a context beyond the scope of an Activity, which will help you to avoid memory leaks.
If you read this article you can see the difference between to the two Context.
The Application context will live as long as your application is alive
and does not depend on the activities life cycle. If you plan on
keeping long-lived objects that need a context, remember the
application object.
Instead the Activity Context is associated with the activity and could be destroyed as many times as the activity is destroyed - changing screen orientation, back button etc.