android:windowIsTranslucent &分享回調 引發的血案

背景:

遇到一個線上用戶反饋 case,用戶在分享成功之後回調,我們的回調彈窗閃爍多次,無法繼續操作,部分機型出現

case跟蹤:

針對用戶情況,用華爲榮耀9.0系統復現。發生場景是,用戶在簽到中心做任務領取獎勵,分享回調頁面無法正常展示,有很嚴重體驗問題,而且是少部分機型出現。在 debug 環境逐步跟蹤發現,原來是activity 的 style 中的android:windowIsTranslucent 屬性導致問題。

復現場景是:需要進行分享調起三方 app,分享回調之後,彈起 dialog 就會出現。

原因:

部分高版本手機在用 activity 模擬的 dialog 樣式情況下(android:windowIsTranslucent 主要用戶控制彈窗透明,否則用 activity 模擬就沒有意義),跳出 app,有 startActivityForResult 之後,會有dialog 彈出失敗的問題,其實本質上也不是彈出失敗,這個模擬的 dialog 應該是正常彈出了,懷疑是窗體被全部設置透明瞭,將android:windowIsTranslucent就不會出問題。 或者不走分享,直接調起這個摸你的 dialog 也不會有問題。所以正常情況下,android:windowIsTranslucent和分享回調不同時使用都不會出現問題,極限情況下,就悲劇了!而且是部分高版本手機會出現。  更深層次的原因還有待跟蹤....

解決方案:

還是用正常的 dialog 去實現,不要用 activity 去模擬 dialog 了,說不好就遇到類似坑。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章