項(xiàng)目突然發(fā)現(xiàn)有個(gè)偶現(xiàn)的bug,就是偶爾會(huì)回到前臺(tái)時(shí),觸摸啥反應(yīng)都沒有,只能殺掉應(yīng)用重啟.因?yàn)閷?shí)在是找不出問題,復(fù)現(xiàn)率又很低,就暫時(shí)沒管.
稍微空閑時(shí),看了下日志,發(fā)現(xiàn)觸摸沒反應(yīng)時(shí),會(huì)打印這樣的:
W/ViewRootImpl:dropping event due to no window focus:
KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=158, metaState=0,
flags=0x8, repeatCount=0, eventTime=1057872, downTime=1057872, deviceId=4,
displayId=0, source=0x101 }........etc....
cancelling event due to no window ......etc .....
以我的水平,read the fucking source,進(jìn)入到 ViewRootImpl,看了下也不知道怎么解決.
搜了下解答看到有說 建議復(fù)寫回退鍵的 onKeyDown ()??? 換成 onkeyUp()...
有說是Dialog相關(guān)屬性 dissmiss問題
總之沒有一個(gè)符合本項(xiàng)目條件的,無奈.雖然印象中,是項(xiàng)目用了系統(tǒng)的共享元素專場動(dòng)畫以后才開始出現(xiàn)這個(gè)問題的,但是始終不知道是哪里的原因.忙了又?jǐn)R置.
如此幾番.終于再今天在Stack Overflow 上看到了個(gè) animationEnd 什么的,也沒解釋全,琢磨了下,的確,這個(gè)問題確實(shí)是自從主頁跳轉(zhuǎn)使用了系統(tǒng)轉(zhuǎn)場動(dòng)畫大概這樣的
Intent intent = new Intent(ShareAnimatorActivity.this,SecondShareAnimActivity.class);
? ? ? ? ? ? ? ? Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(ShareAnimatorActivity.this,shareImg,getString(R.string.share_pic_str)).toBundle();
? ? ? ? ? ? ? ? startActivity(intent,bundle);
用了共享元素轉(zhuǎn)場動(dòng)畫之后,才開始偶現(xiàn)的.
那么問題來了,如果是這個(gè)原因,那一定能復(fù)現(xiàn)的,因?yàn)橐郧安恢罆r(shí),只能碰運(yùn)氣.
然后試了下,打開下一個(gè)頁面,然后再后退,后退執(zhí)行動(dòng)畫,再共享元素沒完全復(fù)位,也就是說動(dòng)畫沒執(zhí)行完的時(shí)候,給他home鍵回到桌面,或者鎖屏.
再次打開應(yīng)用/亮屏,OK!!!!!? 問題復(fù)現(xiàn)了!!!? 激動(dòng),這么久,原因終于找到了.那么下一步不用多說了. hhhhhhh