观察:手动更改 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/