我过去常常在一个接口中定义一组相关的常量,比如 Bundle
键,如下所示:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
这为我提供了一种将相关常量组合在一起并通过静态导入(而非实现)使用它们的更好方法。我知道 Android
框架也像 Toast.LENTH_LONG
、 View.GONE
一样使用常量。
然而,我经常觉得 Java Enums
提供了更好更强大的方式来表示常量。
但是在 Android
上使用 enums
是否存在性能问题?
经过一番研究,我对这个问题感到困惑
从 Android 的性能提示中删除“避免只需要 Ints 的枚举”?很明显,Google
已经把 “避免枚举”从它的表现技巧中删除了,但是从它的官方培训文档 注意内存开销部分它清楚地说: 枚举通常需要比静态常量多两倍的内存。您应该严格避免在 Android 上使用枚举仍然保持良好吗?(例如在1.6以后的 Java
版本)
我观察到的另一个问题是使用 Bundle
通过 intents
发送 enums
,我应该通过序列化(即 putSerializable()
,我认为与原始 putString()
方法相比,这是一个昂贵的操作,尽管 enums
免费提供)来发送它们。
有人可以澄清哪一个是最好的方式来表示在 Android
相同?我是否应该严格避免在 Android
上使用 enums
?