Android常量字符串作为捆绑密钥不起作用

问题描述

我已经接管了应用程序源代码以继续开发。在很多情况下,字符串资源被用作捆绑中的键:bundle.putBoolean(getString(R.string.bundle_extra_name_from_user),true);

代码的其他部分,硬编码的字符串用作键(在bundle的putValue和getValue方法中)。因此,我决定摆脱硬编码的东西。此外,我认为每次我想向捆绑软件中添加信息/从捆绑软件中接收信息时,从R.string...中挖掘字符串资源是一项过于占用资源的操作。不仅仅是在专用类中拥有一堆String常量。由于它们在内存中(至少我认为是这样),因此访问它们应该更快得多。

我将整个内容重构为使用String常量:

public class BundleConstants {

        public static final String VEHICLE_ID = "vehicleId";
        public static final String TRANSACTION_ID = "transactionId";
        public static final String PIN_CODE = "pinCode";
        public static final String DEVICE_ID = "deviceid";
        .
        .
        .
        etc

        private BundleConstants() {}
    }

完成后,我注意到在应用程序的某些位置,这些值没有到达捆绑包中。每次bundle.getBoolean(BundleConstants.BOOLEAN_KEY);都会给我false,即使将其设置为true(我调试过,true肯定已放入捆绑包中也是如此)。

从那时起,我将事物重构为使用字符串资源作为捆绑键。现在一切正常。

是否有一种特殊的方式将String常量用作捆绑密钥?还是我一直在忽略某些东西?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)