Eu costumava definir um conjunto de constantes relacionadas como Bundlechaves juntas em uma interface como abaixo:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Isso me fornece uma maneira mais agradável de agrupar constantes relacionadas e usá-las fazendo uma importação estática (não implementos). Eu sei que o Androidframework também usa as constantes da mesma maneira Toast.LENTH_LONG, como View.GONE,.
No entanto, muitas vezes sinto que Java Enumsfornecem uma maneira muito melhor e poderosa de representar a constante.
Mas há um problema de desempenho no uso do enumson Android?
Com um pouco de pesquisa, acabei ficando confuso. Desta questão
"Avoid Enums Onde Você Só Precisa de Ints" removida das dicas de desempenho do Android? Está claro que Googleremoveu "Avoid enums" de suas dicas de desempenho, mas de seus documentos oficiais de treinamento. Esteja ciente da seção de sobrecarga de memória diz claramente: "Enums freqüentemente requerem mais do que o dobro de memória que constantes estáticas. Você deve evitar estritamente o uso de enums no Android. " Isso ainda é válido? (Digamos nas Javaversões posteriores à 1.6)
Mais uma questão que eu observei é enviar enumsatravés intentsusando Bundledevo enviá-los por serialização (ou seja putSerializable(), que eu acho que uma operação cara em comparação com primitivo putString()método, eventhoughenums fornece-lo gratuitamente).
Alguém pode esclarecer qual é a melhor maneira de representar o mesmo em Android? Devo estritamente evitar o uso enumsde Android?
Enum.ordinal().