J'ai une activité d'affichage de carte qui montre quelques OverlayItems
. Dans la méthode onTap
d'une superposition, je veux déclencher une nouvelle activité qui affiche cette photo de superposition comme un plein écran, par exemple.Comment puis-je démarrer une activité à partir d'une classe de non-activité?
Quand je le fais dans ma classe de recouvrement:
Intent intent = new Intent();
intent.setClass(getApplicationContext, FullscreenView.class);
startActivity(intent);
.. il ne peut pas trouver un contexte d'application, comme je ne suis pas dans le cadre d'une activité.
Lorsque j'ajoute une méthode pour mon activité principale, disons startFullscreen
:
public static void startFullscreen() {
if (sCurrentPhoto != null) {
Intent intent = new Intent();
intent.setClass(getApplicationContext(), FullscreenView.class);
startActivity(intent);
}
}
Je ne peux pas appeler getApplicationContext()
et startActivity()
, parce que je suis dans un contexte statique. J'ai besoin cependant de la méthode statique pour l'appeler dans la classe Overlay comme .
Mettez simplement: Comment puis-je démarrer une activité à partir d'une classe de non-activité?
Lorsque je tente de démarrer une activité d'une classe non-activité (dans le même processus) Je reçois une exception : "android.util.AndroidRuntimeException: L'appel de startActivity() en dehors d'un contexte d'activité nécessite l'indicateur FLAG_ACTIVITY_NEW_TASK." (Je le fais dans le contexte d'un gestionnaire d'intention.) – Tom