系统开机时默认输入法设置逻辑
2017-04-20 14:34:21 0 举报
android输入法逻辑
作者其他创作
大纲/内容
解锁
开始
if (!mImeSelectedOnBoot) {判断是否存在默认输入法
new InputMethodManagerService()
InputMethodManagerService
mSettings.enableAllIMEsIfThereIsNoEnabledIME();如果没有可用输入法,则将当前安装的输入法全部设为可用输入法
结束
updateFromSettingsLocked(true);更新设置信息
updateInputMethodsFromSettingsLocked(true);更新系统中保存的默认输入法信息
defaultImiId = mSettings.getSelectedInputMethod();再次重新获取默认输入法
if (!mImeSelectedOnBoot) {判断系统开机时数据库是否设置了默认输入法
defaultImiId = mSettings.getSelectedInputMethod();//获取数据库中的默认输入法
mImeSelectedOnBoot = !TextUtils.isEmpty(defaultImiId);获取默认输入法是否为空
synchronized (mMethodMap)上锁
startInputInnerLocked();
chooseNewDefaultIMELocked()重新选择默认输入法
if (resetDefaultEnabledIme) {是否重新设置默认输入法
immF.systemRunning()
if (chooseNewDefaultIMELocked()) 判断重新设置默认输入法是否成功
if (!map.containsKey(defaultImiId)) {判断默认输入法是否安装
SystemServer
if(!TextUtils.isEmpty(defaultImiId))判断默认输入法是否为空
resetDefaultImeLocked(context);重新设置默认输入法
收藏
0 条评论
下一页