Bonjour à tous.
Est-il possible de créer une instance de classe maclasse (un Activity) sans l'afficher ? Je voudrais juste pouvoir utiliser des fonctions publiques qui sont dedant.
Merci
Nico
Version imprimable
Bonjour à tous.
Est-il possible de créer une instance de classe maclasse (un Activity) sans l'afficher ? Je voudrais juste pouvoir utiliser des fonctions publiques qui sont dedant.
Merci
Nico
Le plus simple dans ce cas-là serait de le découpler de leur classe englobante, les rendre statique et les mettre dans une classe utilitaire, non ?
Nous n'avons pas la même définition de "classe utilitaire" ^^"
Ce que j'entends par là, c'est une classe non-instanciable ne contenant que des méthodes statique permettant de factoriser les traitements.
Ce n'est pas une extension d'Application permettant d'avoir des variables globales à l'application, ni une méta-activité ou un méta-fragment permettant de factoriser des traitements communs à tout ou partie des enfants.
Ce que je comprends de ta question : tu as des traitements T qui sont dans l'Activité A. Tu désirerais en faire appel dans l'Activité B.
Je vais donc compléter ma précédente, plusieurs solutions :
- duplication de code : je la mets histoire de, mais ce n'est pas une solution acceptable
- créer une Activité mère pour factoriser ses traitements pour ses 2 classes (et peut-être pour plus plus tard) : rajouter un niveau d'indirection pour une factorisation de traitements est commun... juste faire attention à ne pas aller dans l'extrême
- mettre les traitements dans Application : si ça a un sens, pourquoi pas => utilisable par la plupart des classes Activité et Fragment, doit être dispo partout et à un fort couple avec Application.
- créer une classe utilitaire : voir s'il est possible de découpler intégralement les méthodes de la classe englobante, si oui => rendre statique et créer une classe "MachinUtils" où iront les traitements de ce genre (il faudra sans doute passer un contexte à chacune des méthodes... mais ce n'est pas surprenant pour Android).
Voilà-voilà.
en fait faire appel à cette fonction depuis un broadcastreceiver :)
no comment, ca va de soi
je l'ai déjà fait dans mon application, mais je voulais éviter de mettre cette fonction dedant
oui mais là c'est pour une seule fonction... c'est pas un peu usine à gaz ? :mouarf:
Merci
Nico
Pour une seule fonction, ça peut être excessif. Je ferai ainsi, histoire de découpler... mais c'est vrai que la pertinence ne sera pas forcément intégralement au rendez-vous :)
Bon, bah je vais commencer à refactoriser cette fonction et son receiver (il s'agit d'une fonction de téléchargement...
Merci pour les réponses
Nico