Lord Yu Posted December 9, 2010 Share Posted December 9, 2010 Bonjour, Dans le cadre de mon application j'ai un class qui tourne toujours en background, c'est une bête class qui n'extend pas activity (elle hérite déjà de Thread). J'aimerais dans certaines conditions lancer une activity depuis celle-ci mais je n'ai pas de context donc un Intent(this, maClass.class) ne fonctionne pas. Vous avez pas une solution pour moi? Merci Link to comment Share on other sites More sharing options...
octera Posted December 9, 2010 Share Posted December 9, 2010 Salut, Ton architecture n'est pas bonne. Il faut que ce soit un service, avec les service Android tu a un context et donc lancer une Activité. De plus le Service est autonome et peut donc continuer a exister même si ton application n'est pas au premier plan. Link to comment Share on other sites More sharing options...
fredoj Posted December 15, 2010 Share Posted December 15, 2010 Bonjour, Le plus simple c'est de passer à cette classe un "context" Androïd en paramètre du constructeur (une référence this de l'activité qui a créée cet objet par exemple). Avec ce context tu peux lancer une activité. La solution du service est effectivement + adaptée si ta classe en question est toujours en tache de fond. Frédéric Link to comment Share on other sites More sharing options...
Pierre87 Posted December 19, 2010 Share Posted December 19, 2010 Je te déconseille fortement de garder une référence vers une Activity en tant que Context. Ca a tendance à provoquer des fuites de mémoire. Que fais tu dans cette classe en "background"? Il faut peut être utiliser un service dans ton cas... Si tu veux une Context disponible tout le temps, je te conseille de te tourner vers la classe Application. Il y a toujours une instance unique de crée (donc tu peux faire un singleton) Ne pas oublier d'ajouter le flag "new task" lors de l'ouverture d'une Activity :P Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.