ฉันเคยกำหนดชุดของค่าคงที่ที่เกี่ยวข้องเช่นBundleคีย์ด้วยกันในอินเทอร์เฟซดังต่อไปนี้:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
นี่เป็นวิธีที่ดีกว่าในการจัดกลุ่มค่าคงที่ที่เกี่ยวข้องเข้าด้วยกันและใช้โดยการนำเข้าแบบคงที่ (ไม่ใช่การใช้งาน) ฉันรู้ว่าAndroidกรอบการทำงานยังใช้ค่าคงที่ในลักษณะเดียวกันเช่น,Toast.LENTH_LONGView.GONE
อย่างไรก็ตามฉันมักรู้สึกว่าJava Enumsวิธีนี้ให้วิธีที่ดีกว่าและมีประสิทธิภาพมากในการแสดงค่าคงที่
แต่มีปัญหาในการใช้งานenumsบนAndroid?
ด้วยการค้นคว้าเล็กน้อยฉันจบลงด้วยความสับสน จากคำถามนี้
"หลีกเลี่ยง Enums ในที่ที่คุณต้องการเพียง Ints" ถูกลบออกจากเคล็ดลับประสิทธิภาพของ Android เป็นที่ชัดเจนว่าGoogleได้ลบ"หลีกเลี่ยง enums"ออกจากเคล็ดลับการปฏิบัติงาน แต่จากเอกสารการฝึกอบรมอย่างเป็นทางการโปรดทราบส่วนค่าใช้จ่ายของหน่วยความจำจะระบุไว้อย่างชัดเจนว่า: "Enums มักต้องการหน่วยความจำมากกว่าค่าคงที่มากกว่าสองเท่า คุณควรหลีกเลี่ยงการใช้ enums บน Android อย่างเคร่งครัด "สิ่งนี้ยังใช้ได้ดีอยู่หรือไม่ (พูดในJavaเวอร์ชันหลัง 1.6)
อีกปัญหาหนึ่งที่ฉันสังเกตเห็นคือการส่งenumsข้ามintentsโดยใช้Bundleฉันควรส่งโดยการทำให้เป็นอนุกรม (เช่นputSerializable()ฉันคิดว่าการดำเนินการที่มีราคาแพงเมื่อเทียบกับputString()วิธีดั้งเดิมแม้ว่าจะenumsให้ฟรี)
ใครช่วยอธิบายได้Androidไหมว่าวิธีใดเป็นวิธีที่ดีที่สุดในการแสดงความคิดเห็น ฉันควรจะหลีกเลี่ยงการใช้อย่างเคร่งครัดenumsในAndroid?