Android marshmallow 动态权限更改会杀死所有应用程序进程

标签 android android-permissions android-6.0-marshmallow

观察:手动更改 Android 应用程序的权限会杀死该应用程序的所有进程。

程序:转到设置->应用程序选择应用程序和权限。禁用其中一项权限。 设备:运行 Android Marshmallow 6.0 的 Nexus 6 设备

当我从启动器启动应用程序时,它启动了在此应用程序权限更改之前位于顶部的 Activity 。这与我们通过从 UI 多任务菜单中刷出应用程序来终止应用程序进程时的行为不同。在这种情况下,首先创建启动器 Activity 。 也就是说,为了让应用程序在更改权限后启动时能够正常工作,它不能依赖于启动器 Activity 的启动。

在所有 Android 6.0+ 设备上,这种预期行为是否具有动态权限?为什么应用程序进程被从 UI 多任务菜单中滑出时的行为会有所不同?

最佳答案

That is, for application to work correctly when launched after changing permission, it cannot have a dependency on launcher activity to be started.

多年来一直如此。例如,如果您的进程由于内存不足而终止,但用户最近(例如,在过去半小时内),当用户访问概览屏幕时(您称之为“UI 多任务menu") 并返回到您的应用程序,控件将返回到用户上次进行的任何 Activity 的新实例(即,一直在 BACK 堆栈的顶部)。

Is this expected behavior with dynamic permissions on all Android 6.0+ devices?

是的。在所有以前的 Android 设备中,这也是预期的行为,对于您的进程已终止但您的任务仍然未完成且最近的其他情况。

Why is there a difference in behavior from when the application process is killed by swiping it out from UI multitask menu?

将任务从概览屏幕上滑出会移除该任务。因此,当用户尝试返回您的应用(例如,通过主屏幕启动器图标)时,该任务无法重复使用。

关于Android marshmallow 动态权限更改会杀死所有应用程序进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488589/

相关文章:

android - 异常读取 Wifi/3G 状态

android - 针对 android 中较低的 SDK 版本

java - 操作栏不显示项目

java - 使用 Volley 通过 GSON 解析 JSON 时出错

java - Android 广播 - 发送和接收权限

android - GoogleAccountCredential setSelectedAccountName 但仍然为空

android - 相机权限不适用于 Marshmallow 及以上设备并崩溃

android - Android 6.0 未经许可抓拍图片

android - 构建源码后加载模拟器

java - 如何构建AOSP来获取jar文件?