Tôi đã sử dụng để xác định một tập hợp các hằng số liên quan như Bundle
cá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 Android
khuô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 Enums
cung 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 enums
trên Android
khô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 Java
cá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 enums
qua intents
sử dụng, Bundle
tô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 enums
cung 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 Android
không? Tôi có nên tuyệt đối tránh sử dụng enums
trên Android
không?