zoukankan      html  css  js  c++  java
  • android中获得系统语言

    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    相比在系统内发送全局广播,它更高效。

  • 相关阅读:
    【基础】jquery全选、反选、全不选代码
    【基础】jquery全选、反选、全不选代码
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    收集一些程序员励志经典名言
    防止表单重复提交的解决方案整理
    Git使用教程
    2019牛客暑期多校训练营(第二场)J Subarray
    Hibernate-配置
    与项目欧拉速度比较:C vs Python与Erlang vs Haskell
  • 原文地址:https://www.cnblogs.com/xilinch/p/2610537.html
Copyright © 2011-2022 走看看