Creo que hay muchas cosas que están mal documentadas en el sitio del SDK, esta es una de ellas. La afirmación que haré es que parece que es mejor usar el contexto de una aplicación por defecto y solo usar un contexto de actividad cuando realmente lo necesite. El único lugar donde he visto que necesitas un contexto de actividad es para un diálogo de progreso. SBERG412 afirma que tiene que usar un contexto de actividad para un mensaje brindis, sin embargo, los documentos de Android muestran claramente el contexto de una aplicación que se está utilizando. Siempre he usado el contexto de la aplicación para brindar por este ejemplo de Google. Si está mal hacerlo, Google dejó caer la pelota aquí.
Aquí hay más para pensar y revisar:
Para un mensaje de brindis, la Guía de desarrollo de Google usa el contexto de la aplicación y dice explícitamente que se use:
Notificaciones de brindis
En la sección de diálogos de la guía de desarrollo, verá que un AlertDialog.Builder usa el contexto de la aplicación, y luego la barra de progreso usa un contexto de actividad. Google no lo explica.
Cuadros de diálogo
Parece que una buena razón para usar el contexto de la aplicación es cuando desea manejar los cambios de configuración como un cambio de orientación, y desea retener objetos que necesitan un contexto como Vistas. Si mira aquí: Cambios en el tiempo de ejecución
Hay una advertencia sobre el uso de un contexto de actividad, que puede crear una fuga. Esto se puede evitar con un contexto de aplicación con las vistas que se deben conservar (al menos eso entiendo). En una aplicación que estoy escribiendo, tengo la intención de usar un contexto de aplicación porque estoy tratando de mantener algunas vistas y otras cosas en un cambio de orientación, y todavía quiero que la actividad sea destruida y recreada en los cambios de orientación. Por lo tanto, tengo que usar un contexto de aplicación para no causar una pérdida de memoria (consulte Cómo evitar pérdidas de memoria) Para mí, parece que hay muchas buenas razones para usar el contexto de la aplicación en lugar de un contexto de actividad, y para mí casi parece que lo usarías con más frecuencia que un contexto de actividad. Eso es lo que parecen hacer muchos libros de Android por los que he pasado, y eso es lo que hacen muchos de los ejemplos de Google que he visto.
La documentación de Google realmente hace que parezca que usar el contexto de la aplicación está perfectamente bien en la mayoría de los casos, y de hecho aparece con más frecuencia que usar un contexto de actividad en sus ejemplos (al menos los ejemplos que he visto). Si realmente es un problema usar el contexto de la aplicación, entonces Google realmente necesita poner más énfasis en esto. Necesitan dejarlo en claro, y necesitan rehacer algunos de sus ejemplos. No atribuiría esto completamente a los desarrolladores inexpertos ya que la autoridad (Google) realmente hace que parezca que no es un problema usar contextos de aplicación.