从设置禁用权限并返回到我们的应用程序后崩溃

after disable permissions from settings and return to our app getting crash(从设置禁用权限并返回到我们的应用程序后崩溃)
本文介绍了从设置禁用权限并返回到我们的应用程序后崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当当前活动跳到系统设置页面以禁用权限,然后再次切换当前活动时,应用程序崩溃

第一步:打开应用程序并授予所有必要的权限

第二步:点击主页按钮(应用程序在后台)

第3步:手动更改设置中的权限

第四步:从多任务启动应用,现在由于应用上下文无效而崩溃

观察到再次创建应用程序,不理解为什么会发生这种情况。欢迎提出任何纠正此问题的建议!

推荐答案

我为我的用例找到的解决此问题的最有效的解决方案是,在更改设置屏幕中的权限后返回应用程序时,只需选中我标识为空的特定视图。这导致多个视图在恢复应用时为空,从而导致致命错误。

基本上,在你的应用程序在后台更改权限的阶段,Android会为你的应用程序创建一个恢复应用程序的新进程;使之前的进程无效。您可以使用Log语句来记录差异,使用如下内容进行测试,您应该会看到活动标识符有所不同:

Log.v("YOURTAGHERE", String.valueOf(activity));

我遇到了同样的问题,实现了以下操作,简单地重启了应用程序,解决了我的用例问题:

if (mTabView == null) {
    Intent intent = new Intent(sActivity, SplashActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
    Intent.FLAG_ACTIVITY_CLEAR_TASK);
    sActivity.startActivity(intent);
    sActivity.finish();
}

这篇关于从设置禁用权限并返回到我们的应用程序后崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)