Android
Activity Context VS getApplicationContext(): Quando utilizar ?
Lucas
16 de janeiro de 2017
2 min de leitura


Qualquer desenvolvedor Android já se deparou com o problema de ter que usar a referência da própria Activity ao invés de usar getApplicationContext(). Tanto Activity e getApplicationContext() são instâncias de Context, porém a diferença é que Activity possui o contexto da própria Activity, e getApplicationContext() é o Context da Aplicação.
Uma aplicação Android possui diversos tipos de Context, tais como:
Depois de pesquisar um pouco, encontrei uma tabela indicando quando utilizar cada caso:
| Application | Activity | Service | ContentProvider | BroadcastReceiver | |
|---|---|---|---|---|---|
| Show a Dialog | NO | YES | NO | NO | NO |
| Start an Activity | NO1 | YES | NO1 | NO1 | NO1 |
| Layout Inflation | NO2 | YES | NO2 | NO2 | NO2 |
| Start a Service | YES | YES | YES | YES | YES |
| Bind to a Service | YES | YES | YES | YES | NO |
| Send a Broadcast | YES | YES | YES | YES | YES |
| Register BroadcastReceiver | YES | YES | YES | YES | NO3 |
| Load Resource Values | YES | YES | YES | YES | YES |
Fonte: https://possiblemobile.com/2013/06/context/