android中获得系统语言

简介: String str = Locale.getDefault().getLanguage();                Log.i("my", str);    中文为   str ="cn"; 英文为  str ="en"; 日文为  str ="ja"; 。

 

String str = Locale.getDefault().getLanguage();
                Log.i("my", str);   

中文为   str ="cn";

英文为  str ="en";

日文为  str ="ja";

。。。。

写个程序监控设置中语言变化

public class AndroidLanguageActivity extends Activity {
    
    class MyReceiver extends BroadcastReceiver 
    {

        @Override
        public void onReceive(Context context, Intent intent)
        {
            // TODO Auto-generated method stub
            if("Intent.ACTION_LOCALE_CHANGED".equals(intent.getAction()))
            {
                String str = Locale.getDefault().getLanguage();
                Log.i("my", "changed    "+str);
            }
        }
        
    }
    MyReceiver receiver;
    IntentFilter filter;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        View view  = new TestDrawView(this);
//        view.setBackgroundDrawable(getResources().getDrawable(R.drawable.xx));
        setContentView(view);
        receiver = new MyReceiver();
        filter = new IntentFilter("Intent.ACTION_LOCALE_CHANGED");
       
    }
    
    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();
        registerReceiver(receiver, filter);
        String str = Locale.getDefault().getLanguage();
        Log.i("my", str);
    }

    @Override
    protected void onPause()
    {
        // TODO Auto-generated method stub
        super.onPause();
        unregisterReceiver(receiver);
    }
    
}

 

根据官方文档指明,注册广播在onSume()中,解除注册unregister(receiver);在onPause()中。

而且如果假设广播只在本应用中的话推荐使用LocalBroadcastManager,因为它具有一下优点:

1    因广播数据在本应用范围内传播,你不用担心隐私数据泄露的问题。

2    不用担心别的应用伪造广播,造成安全隐患。

3    相比在系统内发送全局广播,它更高效。

 

 

目录
相关文章
|
10月前
|
Shell Android开发
Android设置语言
Android设置语言
153 1
|
Android开发
Android SelectorChapek工具使用
Android SelectorChapek工具使用
Android SelectorChapek工具使用
|
XML 自然语言处理 测试技术
|
Java Linux Android开发
|
JavaScript 前端开发 PHP
《Android和PHP开发最佳实践》一2.5 Android上下文
本节书摘来自华章出版社《Android和PHP开发最佳实践》一书中的第2章,第2.5节,作者 黄隽实,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1128 0
|
Java Linux API
《Android的设计与实现:卷I》——第1章 1.2Android体系结构
本节书摘来自华章出版社《Android的设计与实现:卷I》——第1章,第1.2节。作者: 杨云君著.更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2485 0
|
Android开发
Android 获取系统语言(兼容7.0)
转载连接:http://likfe.com/2017/05/10/android-sys-language/ 前言 获取系统当前语言是一个比较常用的功能,在 Android 7.0 系统上旧函数获取到的当前系统语言并不正确,或者说从 Android 7.0 起,Android 系统语言的规则变了。
1975 0
|
Linux 开发工具 Android开发
【Xamarin开发 Android 系列 6】 Android 结构基础(上)
原文:【Xamarin开发 Android 系列 6】 Android 结构基础(上)     前面大家已经熟悉了什么是Android,而且在 【Xamarin开发 Android 系列 4】 Android 基础知识 一文里,开篇就上图,展示了Android的架构。
1119 0
|
Android开发 容器 数据格式
【Xamarin开发 Android 系列 7】 Android 结构基础(下)
原文:【Xamarin开发 Android 系列 7】 Android 结构基础(下) *******前期我们不打算进行太深入的东西,省的吓跑刚进门的,感觉门槛高,so,我们一开始就是跑马灯一样,向前蹿*************   前一篇 我们从大概上知道了 Android的体系,我强调,我们的重点是Application,包括以后的开发 我们也都是开发Application,没有其他。
1249 0
|
Java Linux Android开发
【Xamarin开发 Android 系列 4】 Android 基础知识
原文:【Xamarin开发 Android 系列 4】 Android 基础知识 什么是Android?   Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
1750 0