Saya biasa mendefinisikan satu set konstanta terkait seperti Bundlekunci bersama-sama dalam antarmuka seperti di bawah ini:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Ini memberi saya cara yang lebih baik untuk mengelompokkan konstanta terkait dan menggunakannya dengan membuat impor statis (bukan mengimplementasikan). Saya tahu Androidkerangka juga menggunakan konstanta dengan cara yang sama seperti Toast.LENTH_LONG, View.GONE.
Namun, saya sering merasa bahwa cara Java Enumsmemberikan jauh lebih baik dan ampuh untuk mewakili konstanta.
Tapi apakah ada masalah performence dalam menggunakan enumson Android?
Dengan sedikit riset, saya berakhir dalam kebingungan. Dari pertanyaan ini
? "Enum Hindari Dimana Anda Hanya Perlu Ints” dihapus dari tips kinerja Android jelas bahwa Googletelah dihapus 'Hindari enum' dari tips kinerjanya, tapi dari itu docs pelatihan resmi Menyadari overhead memori bagian itu jelas mengatakan: "Enums seringkali membutuhkan lebih dari dua kali lebih banyak memori sebagai konstanta statis. Anda harus benar-benar menghindari penggunaan enum di Android. " Apakah ini masih berlaku? (Katakanlah dalam Javaversi setelah 1.6)
Salah satu isu lagi yang saya amati adalah untuk mengirim enumsseluruh intentsmenggunakan Bundlesaya harus mengirim mereka dengan serialisasi (yaitu putSerializable(), yang saya pikir operasi yang mahal dibandingkan dengan primitif putString()metode, walaupun enumsmenyediakan secara gratis).
Bisakah seseorang menjelaskan cara terbaik untuk mewakili hal yang sama Android? Haruskah saya benar-benar menghindari penggunaan enumson Android?