当系统的语言改变时,选择的输入法会变成默认输入法:

实现的过程在:InputMethodManagerService.java中的:

mContext.registerReceiver(// 这里对语言改变广播的监听。

new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

synchronized(mMethodMap) {

checkCurrentLocaleChangedLocked();//当接收到语言改变发送的广播时执行方法

}

}

}, filter);

在checkCurrentLocaleChangedLocked()方法中:

有个updateFromSettingsLocked()方法

updateFromSettingsLocked()这个方法:

void updateFromSettingsLocked() {

// We are assuming that whoever is changing DEFAULT_INPUT_METHOD and

// ENABLED_INPUT_METHODS is taking care of keeping them correctly in

// sync, so we will never have a DEFAULT_INPUT_METHOD that is not

// enabled.

String id = Settings.Secure.getString(mContext.getContentResolver(),

Settings.Secure.DEFAULT_INPUT_METHOD);//获取默认输入法

// There is no input method selected, try to choose new applicable input method.

if (TextUtils.isEmpty(id) && chooseNewDefaultIMELocked()) {

id = Settings.Secure.getString(mContext.getContentResolver(),

Settings.Secure.DEFAULT_INPUT_METHOD);

}

if (!TextUtils.isEmpty(id)) {

try {

setInputMethodLocked(id, getSelectedInputMethodSubtypeId(id));//设置当前输入法为默认输入法。

} catch (IllegalArgumentException e) {

Slog.w(TAG, "Unknown input method from prefs: " + id, e);

mCurMethodId = null;

unbindCurrentMethodLocked(true);

}

mShortcutInputMethodsAndSubtypes.clear();

} else {

// There is no longer an input method set, so stop any current one.

mCurMethodId = null;

unbindCurrentMethodLocked(true);

}

}

java 切换系统输入法_系统语言改变时,输入法变成默认输入法分析相关推荐

  1. Android 12.0 系统多个播放器app时,设置默认播放器

    目录 1.概述 2.系统多个播放器app时,设置默认播放器的核心类

  2. 计算机输入模式,如何设置输入法,教您如何设置计算机的默认输入法

    对于许多朋友来说怎么设置电脑的语言,他们在使用计算机时肯定会使用输入法,默认的美式键盘输入法只能输入拼音. 每次键入时切换都非常麻烦. 将常用输入法设置为默认输入法非常方便,那么如何设置输入法呢?下面 ...

  3. html5鼠标移过切换图片,鼠标移动到图片上切换到另一张图片,移出时又切默认图片...

    HTML写法: JS写法:var img = document.createElement("img"); img.setAttribute("src",&qu ...

  4. java后端框架选型_后端语言选型浅谈

    前不久回答了一个关于后端语言选型的问题,写的回答也让笔者有了很多感触,因此在这里谈论下自己对后端语言选型的心得体会,姑且算是抛砖引玉,希望大家能分享各自的心得. 后端语言发展历史 Web 后端语言的兴 ...

  5. 4g内存电脑装xp系统怎么样_系统坏了?去店了重装系统又贵?今天手把手教你如何重装系统...

    估计很多人电脑的系统坏了,第一时间就是去店了重装系统,价钱一般50以上.小编有一个朋友,就是电脑系统坏了,去店里重装系统要70块钱,然后我朋友说50块钱可不可以,店员立马说:"No prob ...

  6. java无ide编译_[转]无IDE时编译和运行Java

    本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近Java subreddit出现了一篇"在没有IDE的情况下编译Java包 ...

  7. 输入法智能联想 Java_[Android6.0][MTK6737] 修改默认输入法为 Sogou

    title: [Android6.0][MTK6737] 修改默认输入法为 Sogou tags: grammar_cjkRuby: true Hardware:MT6737 DeviceOS:And ...

  8. android5.1默认输入法,android 5.1.1 下修改出厂默认输入法

    1. 需要提前将用到的默认输入法(.apk)内置到系统中 2.将系统中所有的输入法设置为可用,修改 frameworks/base/core/Java/com/Android/internal/inp ...

  9. java jvm dump文件_系统宕机时如何让JVM生成javacore和heapdump文件-Dump文件

    当系统宕机,我们需要分析系统宕机原因,除了日志还有两个非常关键的文件可以帮助我们快速找到问题,这两个文件就是javacore和heapdump. javacore:是 Java 提供的一种诊断特性,能 ...

最新文章

  1. Django-admin管理工具
  2. 七十三、从三数之和探究双指针思想
  3. 使用ToolRunner运行Hadoop程序基本原理分析
  4. IntelliJ IDEA 配置文件位置
  5. optimize table 需要多久_吉林市政工程资质新办需要多久
  6. *【CodeForces - 122C 】Lucky Sum (bfs记录状态,二分查找,有坑)(或分块)
  7. lambda表达式创建一条最简单的线程
  8. centos 计算器_centos计算内存CPU正确方法
  9. SpringCloud微服务(07):Zipkin组件,实现请求链路追踪
  10. delphi 通过句柄获取exe文本框内容_实战经验:通过NotifyAddrChange侦测网络变化
  11. centos x86-64位版本 想安装qq for linux
  12. Ubuntu17.10下安装TIM
  13. 电商产品销售管理后台ui模板
  14. 关于matlab的erf与erfc
  15. android微信视频自动播放,Android微信内网页音频自动播放能力调整
  16. Tilera 服务器上hadoop单机版测试
  17. ESP8266-D1 mini-V2 认识
  18. 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进
  19. Quartus II 13.1的安装与注册
  20. MATLAB导入txt和excel文件技巧汇总

热门文章

  1. 简易水下航行器舵控arduino,蓝牙通讯
  2. 破解版XMind图文安装教程
  3. “智慧统计”平台研发
  4. 《神雕侠侣》古墓派玉女功养生修炼
  5. MAC电脑DNS劫持解决方法
  6. http://nxlhero.blog.51cto.com/962631/1666250?plg_nld=1plg_uin=1plg_auth=1plg_nld=1plg_usr=1plg_...
  7. 【JavaScript】DOM 操作元素样式和元素类名
  8. 字母使用频率统计c 语言编程,统计字母的使用频率c语言实现.doc
  9. SMS短信解码举例(一)
  10. 微信删除的聊天记录怎么恢复,教你两个方法