这是我的解决方案:
我在mainActivity中使用了一些片段.
如您所知,当用户禁用权限时,将重新创建活动=>通过onCreate,…
我在mainActivity的onCreate(…)中做了什么,我删除了所有加载的片段,并将我的应用程序置于与第一次运行相同的状态.
喜欢这个:
// Clean fragments (only if the app is recreated (When user disable permission))
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragmentManager.getBackStackEntryCount() > 0) {
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
// Remove previous fragments (case of the app was restarted after changed permission on android 6 and higher)
List fragmentList = fragmentManager.getFragments();
if (fragmentList != null) {
for (Fragment fragment : fragmentList) {
if (fragment != null) {
fragmentManager.beginTransaction().remove(fragment).commit();
}
}
}
小心 !!! :我的appcompat和设计库版本23.2.0崩溃了.重新创建应用程序时会出现此崩溃!
查看此link以获取更多信息.