如何检查手机区域设置是否已更改?

问题描述:

假定具有一些基于语言环境的原始资源的应用程序。但资源并不相互“相互对应” - 一个地区的资源比另一个地区要少。应用程序在关闭时存储它的状态。如何检查手机区域设置是否已更改?

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

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

我知道java.util.Locale,但是我怎样才能把Locale放入Bundle? 我可以依靠getLanguage()吗?

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

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

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

感谢。在getResources()。getConfiguration()。locale之后,我得到一个Locale对象。 SharedPreferences编辑器允许将int/boolean/float/long或一个字符串。什么是最准确的方法转换语言环境(我想呢?) – zserge 2010-10-16 13:04:21

+0

有两个部分在语言环境对象:国家和语言,我认为,在你的情况下,你需要的是国家,所以使用Locale.getCountry( )可能正常工作。 – Tony 2010-10-16 14:53:25

+0

该方法没有返回类型... – wseme 2014-05-27 14:26:07