Разница между базовым контекстом, контекстом приложения и контекстом активности

Какова фактическая разница между getBaseContext (), getApplicationContext () и контекстом активности, которую мы получаем по ActivityName.this?