Android 如何检查电话区域设置是否已更改?

Android 如何检查电话区域设置是否已更改?,android,localization,bundle,Android,Localization,Bundle,假设应用程序具有一些基于区域设置的原始资源。但是这些资源并不是相互“对应”的——一个区域设置的资源比另一个区域设置的资源少。应用程序在关闭时存储其状态 所以,用户可以在一个区域启动应用程序,关闭它(应用程序记住它的状态),然后用户更改电话区域设置,并恢复应用程序。应用程序尝试检索原始资源,但失败,因为该原始资源中的某些信息由于其他区域设置而丢失 问题是:关闭应用程序时如何存储当前区域设置 我知道java.util.Locale,但如何将Locale放入捆绑包? 我可以依靠getLanguage(

假设应用程序具有一些基于区域设置的原始资源。但是这些资源并不是相互“对应”的——一个区域设置的资源比另一个区域设置的资源少。应用程序在关闭时存储其状态

所以,用户可以在一个区域启动应用程序,关闭它(应用程序记住它的状态),然后用户更改电话区域设置,并恢复应用程序。应用程序尝试检索原始资源,但失败,因为该原始资源中的某些信息由于其他区域设置而丢失

问题是:关闭应用程序时如何存储当前区域设置

我知道
java.util.Locale
,但如何将Locale放入捆绑包?
我可以依靠
getLanguage()

当用户关闭应用程序时,您可以将当前区域设置信息存储到中

以下是如何访问当前本地服务器的示例代码:

public class Activity() {
    public getLocal() {
        return getResources().getConfiguration().locale;
    }
}

谢谢在getResources().getConfiguration().locale之后,我得到一个locale对象。SharedReferences编辑器允许放置int/boolean/float/long或字符串。将区域设置转换为字符串的最正确方法是什么?在Locale对象中有两个部分:国家和语言,我认为,在您的情况下,您需要的是国家,所以使用Locale.getCountry()可能很好。