Calendar.getInstance()
构造函数之一同时接受TimeZone
和Locale
,并且TimeZone
和Locale
都具有作为同步方法的setDefault()
函数。
在Android环境中,这是否意味着我只需要在Activity onCreate()
上调用一次即可?如果我这样做,那么如果活动被暂停并恢复,该怎么办?另外,是否可以在自定义应用程序类setDefault()
上调用这些onCreate()
,而忘记了Android生命周期如何影响我的Calendar的值?
最重要的是,Android中setDefault()
使用的最佳实践是什么?
最佳答案
虽然我不得不重申@Andreas的观点,但您实际上不应该这样做;如果需要,则在整个过程中调用它们一次就足够了,因为它们存储在static
字段中。
如果您有Application的子类,则覆盖Application.onCreate()
并在其中设置值就足够了。
如果您担心只有一组本地化的字符串,更好的建议是将所有翻译后的字符串放入默认的values
目录(通常用于en
字符串,但是如果这是唯一的翻译,则此是最好的方法)。这样,用户所在的语言环境都不重要,他们只会看到这组字符串。