横屏输入密码时等待屏灭按power键点亮后字符消失
2016-06-18 17:04
351 查看
横屏输入密码时等待屏灭按power键点亮后字符消失
[DESCRIPTION]选择Settings-> Security-> Screen lock ->none -> 编辑短信,输入几个字符"abcd" - > 然后将机器横屏 -> power 灭屏 -> 然后power 亮屏 -> 发现输入字符消失
[SOLUTION]
该问题是在Android对IME Framework设计上的一个Bug,工作流程如下:
1. IME键盘每次全屏弹出来的时候,都会通过一个Binder(IPC通信)尝试从AP那里获取当前文本框
内的文字;
2. IME Framework会在灭屏的时候来关闭该IME通向Ap 的Binder,防止IME在灭屏的时候操作Ap的文
本框内容;
3. 以上流程的设计带来了该bug,当无锁屏的时候,屏幕一点亮,IME键盘就会update自己文本框里
的内容,
通过通向Ap的Binder获取文本内容,但是,该Binder在上次灭屏的时候被关闭了,所以IME没能拿到
任何内容,显示空白;
如果要解这个bug,就需要破坏以上流程中的某个环节,让IME在点亮屏后能正常获取到Ap的内容
;但是这样的破坏会使之后IME Framework难以维护/升级,而且之后如果Anroid有新增feature的话
,会有未知bug的风险;
幸好的是,该bug对用户的影响并不大:用户难碰到(用户要把锁屏关掉,转到横屏,再进入恰好
IME全屏的Editor界面,再做关/亮屏动作才会喷到),很容易恢复正常(发生bug的时候,用户只需要
把IME收起来,再让IME键盘弹出来就正常了,以上操作IME Framework会重新创建IME 跟Ap之间的
IPC连接),所以我们内部不建议修正该bug。
相关文章推荐
- Patrol 7 架构下?的处理方法
- 清除IE分级审查密码
- 华为路由器密码恢复
- 注册表导出管理员密码文件
- 路由器版本与密码恢复
- 密码知识教程一
- 密码破解全教程
- 通过批处理修改FTP账号和密码
- redis中修改配置文件中的端口号 密码方法
- 更改Mysql root用户密码
- C# 判断字符为空的6种方法的效率实测对比
- C#实现移除字符串末尾指定字符的方法
- C#判断密码强度的方法
- C#使用伪随机数实现加密用户密码的方法
- Mysql5.6 忘记root密码的解决办法
- C#修改及重置电脑密码DirectoryEntry实现方法
- C语言中字符的输入输出以及计算字符个数的方法详解
- MySql5.5忘记root密码怎么办
- C语言中交换int型变量的值及转换为字符数组的方法
- C#实现在控制台输入密码显示星号的方法