为什么当从应用程序设置中取消授予权限时,应用程序进程会终止?

3

设备:三星Galaxy A12

安卓版本:12

我遇到了一个奇怪的行为。我说奇怪是因为这是我第一次遇到这种情况。也许我漏掉了什么。请大家分享你们的经验、想法或建议。

这就是我刚刚遇到的情况:

  1. 在应用中给予存储权限(读/写)。
  2. 按下设备的主页按钮,应用进入后台。
  3. 进入应用设置并取消授予权限。
  4. Logcat显示进程已结束。
  5. 从最近使用的应用中返回到该应用。
  6. 短暂显示启动画面,然后显示上一页。
  7. 猜猜,所有东西都重新创建,viewModel变量恢复为默认值等等。

之前,当我用这个场景测试应用时,应用进程从未结束过。现在,这是官方核心Android操作系统的选择,还是特定于设备的行为?


2
虽然文档中说明了如何实现授权权限以及如何通过该过程流动逻辑,但想象一下,如果要处理用户在任何时刻暂停应用程序并撤销权限的(小众)情况,那将是多么难以维护。因此,解决方案是终止进程,并给予应用程序再次进行常规权限检查的机会。就我所记,这一直都是这样,不确定你所描述的“之前”是什么意思。 - undefined
不是可以在不终止进程的情况下再次检查权限吗?(例如在onResume中) - undefined
1
无法切换此选项。除了可能引起混乱之外,还有一些组件(如服务)可以在授予权限的情况下启动,并且它们不受活动生命周期的限制。 - undefined
1个回答

3
这是官方的核心Android操作系统选择吗?
是的。
以前,当我测试应用程序时,该场景中的应用程序进程从未结束过。
我不知道您以前是如何进行测试的,但您描述的行为自大约8年前引入Android 6.0中的运行时权限以来就存在。

1
官方文件:https://developer.android.com/training/permissions/requesting#app_process_terminates_when_permission_revoked - undefined

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