BundleAş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 Enumssabiti temsil etmenin çok daha iyi ve güçlü bir yolunu sağladığını hissediyorum .
Ancak enumson kullanmanın performans sorunu var Androidmı?
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 enumsgenelinde intentskullanarak 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 Androidmi? Ben kesinlikle kullanmaktan kaçınmalısınız enumsüzerinde Android?