Calendar.getInstance()
构造函数之一接受 TimeZone
和 Locale
,以及 TimeZone
和 Locale
有一个 setDefault()
函数,它是一个同步方法。
在 Android 环境中,这是否意味着我只需要在 Activity onCreate()
上调用一次?如果我这样做,如果 Activity 暂停并恢复怎么办?或者,我可以在忘记 Android 生命周期如何影响我的日历的值时在自定义应用程序类 onCreate()
上调用这些 setDefault()
吗?
最重要的是,在 Android 中使用 setDefault()
的最佳实践是什么?
最佳答案
虽然我必须重申 @Andreas 的观点,即你确实不应该这样做;如果必须的话,那么在整个过程中调用它们一次就足够了,因为它们存储在static
字段中。
如果您有 Application 的子类,则覆盖 Application.onCreate()
并在那里设置值就足够了。
如果您担心只有一组本地化字符串,更好的建议是将所有翻译的字符串放入默认的 values
目录(通常用于 en
字符串,但如果这是您唯一的翻译,这是最好的方法)。这样,无论用户位于什么区域设置,他们都只会看到这组字符串。
关于java - TimeZone 和 Locale 是否只需要调用一次 setDefault() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510273/