Kiedyś definiowałem zestaw powiązanych stałych, takich jak Bundleklucze razem w interfejsie jak poniżej:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Zapewnia mi to przyjemniejszy sposób grupowania powiązanych stałych razem i używania ich przez import statyczny (nie implementuje). Wiem Androidramy stosowane są także stałe w taki sam sposób jak Toast.LENTH_LONG, View.GONE.
Jednak często czuję, że Java Enumszapewniają znacznie lepszy i potężniejszy sposób przedstawiania stałej.
Ale czy istnieje problem wydajno w użyciu enumsna Android?
Po krótkich badaniach znalazłem się w zamieszaniu. Z tego pytania
„Unikaj wyliczeń tam, gdzie potrzebujesz tylko Ints” zostało usunięte ze wskazówek dotyczących wydajności Androida? Jasne jest, że Googleusunięto „Unikaj wyliczeń” ze wskazówek dotyczących wydajności, ale z oficjalnych dokumentów szkoleniowych Należy pamiętać o sekcji poświęconej pamięci, która wyraźnie mówi: „Wyliczenia często wymagają więcej niż dwa razy więcej pamięci niż stałe statyczne. Należy bezwzględnie unikać wyliczeń w systemie Android. „ Czy to nadal jest dobre? (Powiedzmy w Javawersjach po 1.6)
Jeszcze jedna kwestia, że obserwowana jest przesłanie enumscałej intentsużyciu Bundlepowinienem wysłać je przez szeregowania (czyli putSerializable(), że myślę, że operacja kosztowna w porównaniu do pierwotnej putString()metodzie, mimo iż enumsstanowi to za darmo).
Czy ktoś może wyjaśnić, który z nich jest najlepszy do reprezentowania tego samego w Android? Czy powinienem unikać używania enumsna Android?