Solía definir un conjunto de constantes relacionadas como Bundleclaves juntas en una interfaz como la siguiente:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Esto me proporciona una forma más agradable de agrupar constantes relacionadas y usarlas haciendo una importación estática (no implementaciones). Sé Androidmarco también utiliza las constantes en la misma manera como Toast.LENTH_LONG, View.GONE.
Sin embargo, a menudo siento que Java Enumsproporcionan una forma mucho mejor y poderosa de representar la constante.
Pero hay un problema performence en el uso enumsde Android?
Con un poco de investigación terminé confundido. A partir de esta pregunta
"Evitar enumeraciones donde solo necesita Ints" se eliminó de las sugerencias de rendimiento de Android, queda claro que Googlese eliminó "Evitar enumeraciones" de sus sugerencias de rendimiento, pero de sus documentos de capacitación oficiales Tenga en cuenta la sección de sobrecarga de memoria que dice claramente: "Enums a menudo requieren más del doble de memoria que las constantes estáticas. Debes evitar estrictamente el uso de enumeraciones en Android. " ¿Sigue siendo válido? (Por ejemplo, en Javaversiones posteriores a la 1.6).
Un problema más que observé es enviar a enumstravés del intentsuso Bundle. Debería enviarlos serializando (es decir putSerializable(), creo que es una operación costosa en comparación con el putString()método primitivo , aunque lo enumsproporciona de forma gratuita).
¿Alguien puede aclarar cuál es la mejor manera de representar lo mismo Android? ¿Debo estrictamente evitar el uso enumsde Android?