Solía definir un conjunto de constantes relacionadas como Bundle
claves 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é Android
marco también utiliza las constantes en la misma manera como Toast.LENTH_LONG
, View.GONE
.
Sin embargo, a menudo siento que Java Enums
proporcionan una forma mucho mejor y poderosa de representar la constante.
Pero hay un problema performence en el uso enums
de 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 Google
se 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 Java
versiones posteriores a la 1.6).
Un problema más que observé es enviar a enums
través del intents
uso 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 enums
proporciona de forma gratuita).
¿Alguien puede aclarar cuál es la mejor manera de representar lo mismo Android
? ¿Debo estrictamente evitar el uso enums
de Android
?