-1

在 Android 应用开发中,通常建议将常量值定义为 res/values 下的 XML 资源。这样做有很多好处——应用程序本地化更容易完成,设备配置特定的值可以在运行时使用,代码通常更干净等等。我的问题是,在某些情况下应该避免这种情况,为什么?

例如,为什么

<string name="base_url">http://api.mycompany.com/</string>

而不是简单的

public static final String BASE_URL = "http://api.mycompany.com/";

?

4

1 回答 1

1

当字符串不会被本地化时,使用常量可能更直接。请注意,“本地化”与“翻译”不同。例如,货币或日期的格式模式不会翻译成不同的语言,但您应该将它们放入 res/values/ 以便本地化人员可以针对特定的语言环境调整它们。

另一方面,您可能希望一些人类可读的字符串是常量,例如意图操作。例如:

公共静态最终字符串 ACTION_START_DOWNLOAD = "com.example.android.ACTION_START_DOWNLOAD";

如果我知道在几个不同的对等类中使用了一个常量,我将它放在一个单独的对等类中(就像 C 头文件一样)。此外,我使用合同类来定义与内容提供者一起使用的常量。像这样拆分常量可以更容易地更改它们。

于 2013-07-08T22:21:33.403 回答