关于android2.2中浏览器会被白板遮盖的问题

原创 2011年01月25日 11:30:00

强大的测试组居然测出不少android框架级的bug,其中有一个现象如下:

 android2.2中浏览器被白板遮盖

 

故事是这样发生的,当焦点放在地址栏时,会弹出SearchDialog,而在下方会有一个popup window用于显示访问历史,这是输入法也会冒出来,此时,如果隐藏掉输入法(比如按输入法的关闭按钮,或者在listview处滑动)再按back键,重点来了,按back键之后快速滑动浏览器页面,奇迹发生了,浏览器居然被一大块白板给遮盖了!!!

 

起初发现该问题是还是偶发的,但任何一个偶发现象都有其必然规律,终于在不懈的尝试与分析下,发现了上面的必现路径。

 

有事解一个问题真的需要运气,比如这次,我发现,当白板出现时,按menu退出浏览器,这是发现,浏览器再临死前还是留下了凶手的一些蛛丝马迹:

 

android.widget.AutoCompleteTextView.showDropDown(AutoCompleteTextView.java:1207)
01-21 13:14:24.507: ERROR/WindowManager(3834):     at android.widget.AutoCompleteTextView$ResizePopupRunnable.run(AutoCompleteTextView.java:1452)

 

AutoCompleteTextView!!

多么可疑!

毕竟AutoCompleteTextView生活在SearchDialog的世界中,而死者致死的白板多么像一个popupwindow啊,而且死者临死前竟也指出了凶手的手段(AutoCompleteTextView.showDropDown)。

深入AutoCompleteTextView.showDropDown家中调查发现,他平日便是靠着剪裁各种大小的白板(mPopup.setWindowLayoutMode(widthSpec, heightSpec))为生 。在他家偷偷装上摄像头,发现

(noInputMethod == true && !mPopup.isShowing())二者一起出现的时候,浏览器必死!看来是漏网之鱼!

凶手出现了,漏洞找到了,亡羊补牢,为时不晚,于是,法规上增加一条:当mPopup没有显示,并且输入法也不存在的时候,禁止AutoCompleteTextView制造高度大于0 的白板:

if (mPopup.isShowing()) {

……

}else{

if(noInputMethod == true)
    heightSpec = 0;

else if(……){

}else{

}

}

 

这样浏览器从此果然没有再被害。

 

看来google的法规还有待完善啊,其实这种解法仅仅是解决了出口,源头没有封堵。

 

比如,看这个接口:

 

其实问题就出在这,当popupwindow还显示的时候,你触碰TP,他会收到ACTION_DOWN事件,并在250ms后执行showDropDown的动作,但问题就在于,ACTION_DOWN之后,AutoCompleteTextView已经不存在了,本来需要的ACTION_UP事件现在肯定收不到了,这就出现了无法在250ms内将发出去的事件收回,“刀下留人”也来不及了!

Eduoffice电子白板软件V2.2

  • 2016年02月01日 16:29
  • 5.83MB
  • 下载

【web前端】关于页面中 JS 中windown.open( )方法打开新页面有可能会被浏览器拦截的问题

前言,在项目中突然间遇到了一个情况,同样的代码怎么有点地方window.open()打开的新页面不被拦截,有的地方又被拦截了呢,我百思不得其解,于是上网查了下,终于明白这是什么原因了,下面一一讲述。 ...

第88篇ES之优化选项匹配及单值二级字段匹配及老师端私有白板页码显示问题

关键词:优化选项匹配, 单值二级字段匹配, 老师端私有白板页码显示问题 一、优化选项匹配 1.1选项匹配优化 1)今天突然发现,二级字段匹配可以这样写 'query' => array('m...

第43篇白板同步延迟问题解决方案解决(五)及data传输模式分析(二)

关键词:白板同步延迟问题, data传输模式分析, 白板同步延迟问题解决方案总结果 一、data传输模式分析 1.1 线条图片传输之断线重连或连接刚建立时的数据同步            if...

android无限轮播banner图片并且解决banner图片只有2张出现白板的情况,触摸即不轮播

//主页面代码 public class BannerActivity extends Activity {          private ViewPager mViewPager;     p...

Android学习笔记:最简纯素大白板

上午手敲了个纯素大白板,比helloworld都简陋的,目的是了解Android的框架结构。虽然工程浏览器里那一坨东西看起来比较凌乱,但是仔细分析一下,发现这个框架还是比较简单的。...

解决Android Webview 加载一些网页出现白板现象

今天写了几个网址的链接,同一个WebView加载,其他几个链接都可以,但有一个就是不行,测试半天最总找到原因: 测试网址,具体如下 山东牧院——http://www.sdmyxy.cn/ 中国猪...

第41篇白板同步延迟问题(三)

关键词:白板同步延迟问题 一、把同步时间1000改成500,看看有没有助于减少延迟 1.1 相关代码 connection.onmessage = appendDIV;        co...

第4篇白板之问题图片路径及本地连接显示图片及最新问题

关键词:问题图片路径, 本地连接显示图片, 最新测试出的问题 一、测试一对一(五) 1.1 问题图片路径 st.dz101.com:8003  从这个可以看出,端口是8003,找下这个端口在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于android2.2中浏览器会被白板遮盖的问题
举报原因:
原因补充:

(最多只允许输入30个字)