Lord Yu Posté(e) 9 décembre 2010 Share Posté(e) 9 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
octera Posté(e) 9 décembre 2010 Share Posté(e) 9 décembre 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredoj Posté(e) 15 décembre 2010 Share Posté(e) 15 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 19 décembre 2010 Share Posté(e) 19 décembre 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.