isFinishing()处理 Unable to add window

作者:陆金龙    发表时间:2018-07-10 23:25   


先调用activity的isFinishing方法判断一下

以下代码的场景:蓝牙连接或断开时调用,但是Activity退出时,断开蓝牙也会回调,这是执行window.clearFlags会异常。

解决办法是先判断isFinishing,false的情况再执行。

override fun onBleConnectChanged(isConnected: Boolean)
{
    if (!isFinishing)
    {
        if (isConnected)
        {
            window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
        }
        else
        {
            window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
        }
        setConnectButton(isConnected)
    }
}