我过去常常在一个接口中定义一组相关的常量,比如 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?