java - TimeZone 和 Locale 是否只需要调用一次 setDefault() ?

标签 java android calendar

Calendar.getInstance() 构造函数之一接受 TimeZoneLocale,以及 TimeZoneLocale 有一个 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/

相关文章:

php - 如何从谷歌日历获取事件详情

mysql - 如何在mysql中从左到右获取日期?

java - 生成可执行的spring boot jar

java - 如何限制Firestore中添加和删除监听器的数量?

Java 方法给出意外的返回

java - 数字日期格式

java - 如何从独立的 java 文件调用 JAX WS?

Android Studio 4.0 不显示构建错误详细信息

android - 所有 View 的 setOnTouchListener() 警告

timer - Swift 3 中的日历发生了变化?