【问题标题】:Android changing permissions not killing app processAndroid更改权限不会杀死应用程序进程
【发布时间】:2017-04-20 00:05:41
【问题描述】:

所以,当您在应用程序中更改权限时,应用程序过去会做什么,应用程序被杀死并且一切正常。

但我现在正在开发的应用程序并没有被杀死,它仍然存在。

这是场景:

我启动应用程序,被询问权限,我全部接受,现在,我将应用程序置于后台,然后转到设置并禁用所有权限,应用程序不会被杀死,它只会重新加载相同的活动当我把它放在后台时。用户更改权限时如何终止进程?

【问题讨论】:

  • “应用程序没有被杀死”——你的证据是什么?你在什么设备上测试?您请求和撤销什么权限?请注意,只有当用户通过设置撤销权限时,您的进程才会被终止,如果用户授予权限则不会。即便如此,它也仅适用于设置中应用程序屏幕上显示的权限,而不是像SYSTEM_ALERT_WINDOW 这样的东西。
  • @CommonsWare 我正在撤销位置权限,当我从后台重新打开应用程序时,它仍然在同一个活动上,只是重新加载它,所以它不会再次启动,进程不会被权限更改杀死.授予权限工作正常。
  • “只重新加载”是什么意思?如果您的进程被终止,您仍然会处于相同的活动中,因为当您的应用最近有未完成的任务时,Android 会为您创建一个新的进程并将用户返回到上次查看的活动。

标签: android permissions android-permissions


【解决方案1】:

您必须再次在 onResume 方法中对所有 Activity 执行检查权限,以便跟踪授予您的应用的权限。

如果您发现该权限不可用,请再次请求权限,或者在结束您的应用时显示一条消息,说明您关闭应用的原因。

【讨论】:

  • 这个我知道,但是所有其他类型的问题都出现了,我想我需要按原样处理它,因为没有其他解释。
  • 我的行为与 Miljan 相同。你有没有得到这种行为的原因?
  • 每当您再次从后台返回时,您的 Activity 的 onResume() 都会被调用,因此您必须在此处添加您的 checkPermission 代码,它会解决您的问题。
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 2020-04-02
  • 2015-02-18
相关资源
最近更新 更多