Acho que há muitas coisas mal documentadas no site do SDK, essa é uma delas. A afirmação que vou fazer é que parece melhor usar como padrão um contexto de aplicativo e usar apenas um contexto de atividade quando você realmente precisar. O único lugar em que eu já vi que você precisa de um contexto de atividade é para uma caixa de diálogo de progresso. SBERG412 alega que você precisa usar um contexto de atividade para uma mensagem de brinde, mas os documentos do Android mostram claramente um contexto de aplicativo que está sendo usado. Eu sempre usei o contexto do aplicativo para brindes por causa deste exemplo do Google. Se estiver errado, o Google largou a bola aqui.
Aqui está mais para pensar e analisar:
Para uma mensagem de brinde, o Guia do desenvolvedor do Google usa o contexto do aplicativo e diz explicitamente para usá-lo:
Notificações de brinde
Na seção de diálogos do guia Dev, você vê que um AlertDialog.Builder usa o contexto do aplicativo e, em seguida, a barra de progresso usa um contexto de atividade. Isso não é explicado pelo Google.
Diálogos
Parece que um bom motivo para usar o contexto do aplicativo é quando você deseja lidar com alterações de configuração como uma mudança de orientação e deseja manter objetos que precisam de um contexto como Views. Se você olhar aqui: Alterações no tempo de execução
Há um cuidado ao usar um contexto de atividade, que pode criar um vazamento. Isso pode ser evitado com um contexto de aplicativo com as visualizações que devem ser mantidas (pelo menos, esse é o meu entendimento). Em um aplicativo que estou escrevendo, pretendo usar um contexto de aplicativo porque estou tentando adiar algumas visualizações e outras coisas em uma mudança de orientação, e ainda quero que a atividade seja destruída e recriada em alterações de orientação. Portanto, tenho que usar um contexto de aplicativo para não causar vazamento de memória (consulte Evitando vazamentos de memória) Para mim, parece haver muitas boas razões para usar o contexto do aplicativo em vez de um contexto de atividade, e para mim parece que você usaria com mais frequência do que um contexto de atividade. É o que muitos livros do Android que eu já passei parecem fazer, e é o que muitos dos exemplos do Google que eu já vi fazer.
A documentação do Google realmente parece que o uso do contexto do aplicativo é perfeitamente adequado na maioria dos casos e, na verdade, aparece com mais frequência do que o uso do contexto de atividade em seus exemplos (pelo menos nos exemplos que eu já vi). Se é realmente um problema usar o contexto do aplicativo, o Google realmente precisa colocar mais ênfase nisso. Eles precisam deixar claro e refazer alguns de seus exemplos. Eu não culparia isso inteiramente por desenvolvedores inexperientes, já que a autoridade (Google) realmente parece que não é um problema usar contextos de aplicativos.