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

时间:2016-10-25 12:59:25

标签: android android-6.0-marshmallow android-permissions runtime-permissions

我的应用使用了位置权限。如果在运行时从App Settings撤消此权限并返回到应用程序,则会销毁并重新创建当前活动。如何防止这种活动的重建?

2 个答案:

答案 0 :(得分:7)

你不能。如果用户撤消了您应用的权限,则Android会终止您的流程。这会强制您返回检查权限代码,在那里您会发现您丢失了权限。

由于您的应用程序的流程可以在您的用户界面不在前台时终止,因此您的应用应该已经能够处理此案例了。如果它不能,那么你需要解决这个问题,因为你的进程在后台时会被其他原因终止(操作系统释放系统RAM,用户使用任务杀手应用程序,用户在设置中按下强制停止等等)。 )。

答案 1 :(得分:0)

这是在android中实现的直接清理机制,用于处理android M中权限的更改。 该流程将终止,并在即将生效,init's本身具有可用权限。

那么,您的查询的答案 - >整个过程重新启动后,您无法阻止重新创建活动。如果您仍希望检测到此类事件,则最多可以在撤消权限之前保留一些标记,并在应用程序进入前台后进行检查。