在写项目的时候遇到一个bug,就是当程序启动时,下拉通知栏,再将通知栏隐藏后,程序里面的一些显示会被重置或修改。这时就需要监听一下通知栏是否被下拉。原先想着是不是activity的生命周期改变了,可以在生命周期中做处理,失去焦点了,在onPause()中处理一下数据,但测试后证明,onPause()方法不会被调用,这就蒙了,怎么办呢?
其实这里有一个很好的解决办法,就是在onWindowFocusChanged()中处理,当Activity重新获得焦点的时候,对界面和数据进行处理,这就解决了上面的问题,其实很简单,换个思维方式就能很好的解决当前的问题。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus){
//如果焦点获得,进行操作
}
}