2013-07-08 25 views
-1

在Android應用程序開發中,通常建議將常量值定義爲res/values下的XML資源。這樣做會帶來很多好處 - 應用本地化更容易實現,特定於設備配置的值可以在運行時使用,代碼通常更清晰。我的問題是,有沒有這種情況應該避免,爲什麼?何時不使用XML資源

例如,爲什麼

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

,而不是簡單地

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

回答

1

當字符串不會被本地化時,使用常量可能更直接。請注意,「本地化」與「翻譯」不同。例如,格式化貨幣或日期格式不會被翻譯成不同的語言,但您應該將它們放入res/values /中,以便本地化人員可以針對特定區域調整它們。

另一方面,您可能希望一些人類可讀的字符串是常量,如intent操作。例如:

public static final String ACTION_START_DOWNLOAD =「com.example.android.ACTION_START_DOWNLOAD」;

如果我知道幾個不同的同級類之間使用了一個常量,我把它放在一個單獨的同級類(而不是C頭文件)中。另外,我使用契約類來定義與內容提供者一起使用的常量。像這樣分解常量使得更改它們變得更容易。