复现步骤
设置—语言和输入法—当前输入法—先按住选择键盘,再马上按住要选择的输入法—松手—再点击当前输入法。
原因分析
上述操作进入到如下代码时,因 view == null,导致system进程崩溃重启,进而导致机器表现出重启现象。
/*** Resets the cancel next up flag.* Returns true if the flag was previously set.*/private static boolean resetCancelNextUpFlag(@NonNull View view) {if ((view.mPrivateFlags & PFLAG_CANCEL_NEXT_UP_EVENT) != 0) {view.mPrivateFlags &= ~PFLAG_CANCEL_NEXT_UP_EVENT;return true;}return false;}
解决办法
private static boolean resetCancelNextUpFlag(@NonNull View view) {///此处添加 ==null 的判断即可。if ((null != view) && ((view.mPrivateFlags & PFLAG_CANCEL_NEXT_UP_EVENT) != 0)) {view.mPrivateFlags &= ~PFLAG_CANCEL_NEXT_UP_EVENT;return true;}return false;}......
