Ich habe eine Reihe verwandter Konstanten wie BundleSchlüssel zusammen in einer Schnittstelle wie der folgenden definiert:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Dies bietet mir eine bessere Möglichkeit, verwandte Konstanten zu gruppieren und sie durch einen statischen Import (keine Implementierungen) zu verwenden. Ich weiß, dass AndroidFramework die Konstanten auch auf die gleiche Weise verwendet wie Toast.LENTH_LONG, View.GONE.
Ich habe jedoch oft das Gefühl, dass dies Java Enumseine viel bessere und leistungsfähigere Möglichkeit darstellt, die Konstante darzustellen.
Aber gibt es ein Leistungsproblem bei der Verwendung von enumson Android?
Mit ein wenig Recherche geriet ich in Verwirrung. Aus dieser Frage
? „Vermeiden Sie Aufzählungen , wo man nur Ints Need“ von Android Performance - Tipps entfernt ist es klar , dass Googleentfernt ‚Vermeiden Sie Aufzählungen‘ von seiner Leistung Tipps, aber von ihm offizielles Training docs ist Beachten Sie Speicher - Overhead Abschnitt sagt es deutlich: „Aufzählungen benötigen oft mehr als doppelt so viel Speicher wie statische Konstanten. Sie sollten die Verwendung von Enums unter Android unbedingt vermeiden. " Gilt dies immer noch? (Sagen wir in JavaVersionen nach 1.6)
Ein weiteres Problem , dass ich beobachtet wird, ist zu senden enumsüber intentsVerwendung Bundleich sie durch Serialisierung senden (dh putSerializable(), dass ich eine teuere Operation denke , im Vergleich zu primitiver putString()Methode, obwohl enumsbietet es kostenlos).
Kann jemand bitte klären, auf welche Weise er am besten dargestellt werden kann Android? Sollte ich die Verwendung von enumson unbedingt vermeiden Android?
Enum.ordinal()stattdessen als int übergeben .