Tôi đã sử dụng để xác định một tập hợp các hằng số liên quan như Bundlecác khóa với nhau trong một giao diện như bên dưới:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Điều này cung cấp cho tôi một cách tốt hơn để nhóm các hằng số có liên quan với nhau và sử dụng chúng bằng cách thực hiện nhập tĩnh (không phải thực hiện). Tôi biết Androidkhuôn khổ cũng sử dụng các hằng số trong cùng một cách như Toast.LENTH_LONG, View.GONE.
Tuy nhiên, tôi thường cảm thấy rằng cách Java Enumscung cấp tốt hơn và mạnh mẽ hơn nhiều để biểu diễn hằng số.
Nhưng có vấn đề về độ bền khi sử dụng enumstrên Androidkhông?
Với một chút nghiên cứu, cuối cùng tôi đã bối rối. Từ câu hỏi
"Tránh Enums nơi bạn chỉ cần kiến" này đã bị xóa khỏi các mẹo về hiệu suất của Android? Rõ ràng là Googleđã xóa "Tránh enums" khỏi các mẹo về hiệu suất của nó, nhưng từ tài liệu đào tạo chính thức của nó, hãy lưu ý phần chi phí bộ nhớ có ghi rõ ràng: "Enums thường yêu cầu bộ nhớ nhiều hơn gấp đôi so với hằng số tĩnh. Bạn nên tránh tuyệt đối việc sử dụng enum trên Android. " Điều này vẫn tốt chứ? (Nói trong Javacác phiên bản sau 1.6)
Một vấn đề nữa mà tôi quan sát thấy là để gửi enumsqua intentssử dụng, Bundletôi nên gửi chúng bằng cách tuần tự hóa (tức là putSerializable()tôi nghĩ rằng một hoạt động đắt tiền so với putString()phương pháp nguyên thủy , eventhough enumscung cấp nó miễn phí).
Ai đó có thể vui lòng làm rõ cái nào là cách tốt nhất để đại diện giống nhau Androidkhông? Tôi có nên tuyệt đối tránh sử dụng enumstrên Androidkhông?