An 'Application context' is associated with the Application and will always be the same throughout the life cycle of your app (getApplicationContext())
The 'Activity context' is associated with the activity and could possibly be destroyed many times as the activity is destroyed during screen orientation changes and such.(getContext())
Generally don't use getBaseContext(), rather use one of the previous ones as needed.
You might want to use the Application Context (Activity.getApplicationContext()) rather than using the Activity context (this). This is because 'this' needs to be called from within an Activity. (Activity extends Context )