Tengo una actividad de vista de mapa que muestra unos OverlayItems
. En el método onTap
de una superposición, deseo activar una nueva actividad que muestre esta foto superpuesta como una pantalla completa, por ejemplo.¿Cómo puedo iniciar una actividad de una clase que no es de actividad?
Cuando hago esto en mi clase de superposición:
Intent intent = new Intent();
intent.setClass(getApplicationContext, FullscreenView.class);
startActivity(intent);
.. no puede encontrar un contexto de aplicación, ya que no estoy en el ámbito de una actividad.
Cuando agrego un método para mi actividad principal, digamos startFullscreen
:
public static void startFullscreen() {
if (sCurrentPhoto != null) {
Intent intent = new Intent();
intent.setClass(getApplicationContext(), FullscreenView.class);
startActivity(intent);
}
}
No puedo llamar getApplicationContext()
y startActivity()
, porque estoy en un contexto estático. Sin embargo, necesito el método estático para llamarlo a la clase Superposición como MainView.startFullscreen()
.
En palabras simples: ¿Cómo puedo iniciar una actividad de una clase que no es de actividad?
Cuando intento iniciar una actividad de una clase no actividad (en el mismo proceso) consigo una excepción : "android.util.AndroidRuntimeException: la llamada a startActivity() desde fuera del contexto de una actividad requiere el indicador FLAG_ACTIVITY_NEW_TASK". (Estoy haciendo esto en el contexto de un manejador de intenciones). – Tom