这方面之前在SO上已经有人问过,但我还没有找到太多关于实质性证据和/或决定性答案。
在Android中传递Bundle信息时,使用字符串、枚举或静态final int能否观察到任何性能增加/减少?
举个例子,我的应用程序中有几个场景需要加载并显示特定的fragment。每次加载fragment时,都会向其传递一个Bundle,其中包含两个参数:正在显示的数据的ID和指定如何显示它的模式。我已经设置了一个自定义状态页适配器来完成所有繁重的工作,但问题的关键在于:哪种方法(如果有的话)会提供任何性能增益/损失:
Bundle args = new Bundle();
args.putInt("ID", 1);
// method 1
args.putString("MODE", "Mode1");
// method 2
args.putSerializable("MODE", ModeEnum.Mode1);
// method 3
public static final int MODE_1 = 1; // this would be elsewhere in a constants class
args.putInt("MODE", MODE_1);
在这个代码片段中,模式被检查了多次,因此我比较关心哪种选项更适合存储在bundle中,哪种选项更适合在最终进行比较时使用。
如有任何建议、观察或经验,将不胜感激!