miui12 小窗模式

最近测试同事反馈了一个miui12的小窗模式的bug。在小窗模式下,我们的应用的悬浮球存在异常。
研究了一下,miui12的小窗模式,有两种打开方法。
一种是拖到边上打开,一种是缩到后台,在面版选中打开。

方式一

onDetachFromWindow
onAttachFromWindow

即拖拽过程中生命周期没有变化。

方式二

onPause
onSaveInstanceState
onDestory
onDetachFromWindow
onCreate
onRestoreInstanceState
onResume
onAttachToWindow

问题出在onDetachFromWindow,我回收了悬浮球,在onAttachFromWindow重新设置了悬浮球,但是在这种场景下,存在回收的bug。
解决的办法可以是识别是不是这种情况,停止部分回收工作。比如判断Activity.isFinishing。

其他

PS:好像小米的代码也不是很稳定。在onDetachFromWindow中抛出异常,小窗就不可交互了,不能打开,也不能关闭。
PS1:猜测小米的修改只是在framework层,移动了window的层级。

你可能感兴趣的:(Android)