android 6.0版本已经发布了很长时间了,相信大家都知道6.0 系统加入了运行时权限管理,一些危险权限需要在运行时申请。
现在有这么一种情况,如果在一开始用户授予了某项权限,比如定位权限或者相机权限,当应用程序已经启动了,用户手动按下主键之后,回到桌面,打开设置,进入该应用程序的权限管理界面,对该应用程序的权限进行手动取消和给与权限,这时候应用就会莫名其妙的重启,且不会执行activity 和 fragment的生命周期函数,但实质应用已经挂掉了,很奇怪的是app不会被crash掉,且没有任何日志。
如果项目中使用到了Fragment,再次点击应用图标将app从后台唤醒,会出现app崩溃提示,大概就是以下异常:
java.lang.IllegalStateException: Fragment does not have a view
at android.support.v4.app.Fragment$1.onFindViewById(Fragment.java:1933)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)
at and