Bundle
Aşağıdaki gibi bir arayüzde anahtarlar gibi bir dizi ilgili sabiti tanımlardım :
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Bu bana ilgili sabitleri bir arada gruplamak ve bunları statik bir içe aktararak (uygulamalar değil) kullanmak için daha güzel bir yol sağlıyor. Bildiğim Android
çerçeve de benzer aynı şekilde sabitleri kullanır Toast.LENTH_LONG
, View.GONE
.
Ancak, sık sık Java Enums
sabiti temsil etmenin çok daha iyi ve güçlü bir yolunu sağladığını hissediyorum .
Ancak enums
on kullanmanın performans sorunu var Android
mı?
Biraz araştırmayla kafam karıştı. Android'in performans ipuçlarından "Numaralandırmalardan Kaçının" ifadesinin kaldırıldığı bu sorudan "Yalnızca İnçe İhtiyacınız Olan Sayılardan Kaçının" sorusundan
, performans ipuçlarından "Numaralandırmalardan kaçının"Google
kaldırıldığı açıktır , ancak resmi eğitim belgelerinden Bellek ek yükünün farkında olun, açıkça şunu söylüyor: "Numaralar genellikle statik sabitlerin iki katından fazla bellek gerektirir. Android'de numaralandırma kullanmaktan kesinlikle kaçınmalısınız. " Bu yine de geçerli mi? ( 1.6'dan sonraki sürümlerde söyleyin )Java
Ben gözlemlenen bir daha sorun göndermektir enums
genelinde intents
kullanarak Bundle
(yani ben seri hale onları göndermesi gerektiğini putSerializable()
pahalı bir operasyon ilkel kıyasla Bence, putString()
yöntemin, satışlardaki enums
ücretsiz olarak sağlamaktadır).
Biri aynı şeyi temsil etmenin en iyi yolunun hangisi olduğunu açıklayabilir Android
mi? Ben kesinlikle kullanmaktan kaçınmalısınız enums
üzerinde Android
?