我过去常常Bundle在如下界面中定义一组相关常量(如键):
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Run Code Online (Sandbox Code Playgroud)
这为我提供了一种更好的方法来将相关常量组合在一起并通过静态导入(而不是实现)来使用它们.我知道Android框架也使用常数在同样的方式一样Toast.LENTH_LONG,View.GONE.
但是,我经常觉得Java Enums提供更好,更强大的方式来表示常数.
但是,有没有在使用性能自动问题enums上Android?
通过一些研究,我最终陷入困惑.从Android的性能提示Google中删除了"避免使用只需要Ints的枚举"的问题
吗?显然已经从其性能提示中删除了"避免枚举",但是从它的官方培训文档中了解内存开销部分它清楚地说:"枚举通常需要的内存是静态常量的两倍多.你应该严格避免在Android上使用枚举."这仍然很好吗?(Java在1.6之后的版本中说)
我观察到的一个问题,更是发送enums跨intents使用Bundle我应该序列化给他们(即putSerializable(),我认为一个昂贵的操作比较原始的putString()方法沉绵enums提供它是免费的).
有人可以澄清哪一个是代表相同的最佳方式Android?我应该严格避免使用enums的Android?
在Java Android应用程序中enum拥有一组static final ints 有什么优点(或缺点)?是否存在有利于使用其中一种或另一种的效率或性能优化?
我在上下文中询问了这个请求代码等等 - 它往往是Android示例代码中的内容,而不是我在C中习惯的枚举值.