我曾经Bundle
在如下所示的接口中一起定义了一组相关的常量(如键):
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
这为我提供了一种更好的方式将相关常量分组在一起,并通过进行静态导入(而非实现)来使用它们。我知道Android
框架也使用像一样的常量Toast.LENTH_LONG
,View.GONE
。
但是,我经常感到,Java Enums
提供代表常数的更好,更强大的方法。
但是使用enums
on 会有性能问题Android
吗?
经过一番研究,我最终陷入了混乱。从这个问题中,
从Android的性能提示中删除了“避免枚举,您只需要整数”吗?很明显,Google
它已从性能提示中删除了“避免枚举”,但是从官方培训文档中请注意内存开销部分,它明确指出:“枚举通常需要的内存是静态常量的两倍以上。您应严格避免在Android上使用枚举。”这仍然有效吗?(例如Java
1.6以后的版本)
还有一个问题,我观察到的是发送enums
跨intents
使用Bundle
我应该序列化给他们(即putSerializable()
,我认为一个昂贵的操作比较原始的putString()
方法沉绵enums
免费提供的话)。
有人可以说清楚哪一种是代表同一个人的最佳方法Android
吗?我应该严格避免使用enums
on Android
吗?
Enum.ordinal()
改为使用int将其作为int传递。