如何在Android M或更高版本中更改运行时权限时防止重新创建Activity

9

我的应用程序使用位置权限。如果在应用程序设置中在运行时撤销了此权限并返回应用程序,则当前活动将被销毁并重新创建。如何防止该活动被重新创建?

2个回答

14

你无法避免这种情况。如果用户从你的应用中撤销了某个权限,Android系统将终止你的进程。这迫使你重新检查权限的代码,并发现你已经失去了这个权限。

由于在用户界面不在前台时,你的应用程序进程随时可能被终止,因此你的应用程序应该已经能够处理这种情况。如果不能处理,那么你需要进行修复,因为在后台运行时,你的进程还会因其他原因而被终止(例如操作系统释放系统内存、用户使用任务管理应用程序或在设置中强制停止等)。


太棒了,我不知道这个行为。谢谢! - RamKr

1
这是Android中处理Android M权限更改的简单清理机制。该进程被终止,重新启动时,将使用可用权限进行初始化。
因此,对于您的问题的答案是 - 您无法防止重新创建您的活动,因为整个进程都会重新启动。如果您仍希望检测此类事件,则可以在撤销权限之前持久化一些标志,并在应用程序进入前台后检查它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接