最近一直忙着版本更新,记录一下中间遇到的一些问题。
ExpandableStickyListHeadersListView这个开源库主要是实现列表分组的,常见的需求用它还是不错的,项目中也有用到这个控件,一直没有什么问题,但是,这期需求测试在用华为nexus p6做测试的时候,发现了一个奇怪的问题:
在列表快速滑动的时候,点击返回键离开当前界面,app会崩溃,崩溃日志如下:
Attempt to invoke virtual method 'void android.view.View.dispatchWindowFocusChanged() on a null object (大致意思是用一个空的对象调用了dispatchWindowFocusChanged()方法)
起初以为是app逻辑问题,这样的话应该是必现的,但是试了华为,oppo,魅族以及小米后,都没有出现这个问题。于是goole,但是也没有搜到,怀疑是系统某个地方出现异常了…虽然没有搜到解决办法,但是也得解啊(不然没法儿上线…)
中间也试了不少办法,但是都没用,最后想到,既然是View对象调用方法的时候出现异常导致程序崩溃,那我是不是可以复写这个方法,捕捉异常来保证不崩溃?于是重写方法:
@Override
public void dispatchWindowFocusChanged(boolean hasFocus) {
try {
super.dispatchWindowFocusChanged(hasFocus);
} catch (Exception e) {
e.printStackTrace();
}
}
再在华为nexux p6上测试,问题解决。