J'avais l'habitude de définir un ensemble de constantes liées comme des Bundleclés ensemble dans une interface comme ci-dessous:
public interface From{
    String LOGIN_SCREEN = "LoginSCreen";
    String NOTIFICATION = "Notification";
    String WIDGET = "widget";
}
Cela me fournit un moyen plus agréable de regrouper les constantes associées et de les utiliser en effectuant une importation statique (pas des implémentations). Je sais que le Androidcadre utilise aussi les constantes de même que Toast.LENTH_LONG, View.GONE.
Cependant, je pense souvent que le Java Enumsfournit un moyen bien meilleur et puissant de représenter la constante.
Mais est - il un problème de performence à utiliser enumssur Android?
Avec un peu de recherche, j'ai fini dans la confusion. De cette question 
 ? « Évitez les énumérations où vous avez besoin Ints » retirés des conseils de performance Android il est clair que Googlea supprimé « Évitez énumérations » de ses conseils de performance, mais à partir de son docs de formation officiels Soyez au courant des frais généraux mémoire section , il dit clairement: « énumérations nécessitent souvent plus de deux fois plus de mémoire que les constantes statiques. Vous devez strictement éviter d'utiliser les énumérations sur Android. " Est-ce que cela est toujours valable? (Par exemple, dans les Javaversions après 1.6)
Un autre problème que j'ai observé est de les envoyer enumsen intentsutilisant Bundleje devrais les envoyer par sérialisation (c'est putSerializable()-à- dire que je pense qu'une opération coûteuse par rapport à la putString()méthode primitive , même si enumselle la fournit gratuitement).
Quelqu'un peut-il clarifier quelle est la meilleure façon de représenter la même chose Android? Dois - je éviter strictement l' utilisation enumssur Android?