在系统设置中拒绝 android 应用程序的权限时发生了什么
What happened when deny android app' s permission in system settings
第 1 步:打开我的应用程序
第 2 步:打开系统设置(我的应用程序还活着,没有被杀死)
第 3 步:选择我的应用程序的权限(例如相机或位置),状态为 allow 并将其设置为 deny
第 4 步:打开我的应用程序
我的应用程序在第 3 步中死机,在第 4 步中它启动了一个新线程。它也发生在其他应用程序上。我在 android 10 和 android 12 模拟器上尝试了这些。
我在模拟器上试过的其他应用:微信、Google 照片、Chrome。对于大多数类型的许可,他们已经死了,而对于某些许可,他们还活着。 (我的微信被拒绝相机权限死了,但是为了“绘制其他应用程序”权限,它没有)
为什么线程死了?死线程中没有有用的日志。新线程说:Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled.
当您的应用处于活动状态时。如果您从设置页面撤销权限。将重新创建应用进程。在应用程序被杀死之前,它将转到您所在的确切屏幕。但是此时 viewmodel 和所有对象都将为 null。
参考:
Crash when disable permission and go back to the app
第 1 步:打开我的应用程序
第 2 步:打开系统设置(我的应用程序还活着,没有被杀死)
第 3 步:选择我的应用程序的权限(例如相机或位置),状态为 allow 并将其设置为 deny
第 4 步:打开我的应用程序
我的应用程序在第 3 步中死机,在第 4 步中它启动了一个新线程。它也发生在其他应用程序上。我在 android 10 和 android 12 模拟器上尝试了这些。
我在模拟器上试过的其他应用:微信、Google 照片、Chrome。对于大多数类型的许可,他们已经死了,而对于某些许可,他们还活着。 (我的微信被拒绝相机权限死了,但是为了“绘制其他应用程序”权限,它没有)
为什么线程死了?死线程中没有有用的日志。新线程说:Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled.
当您的应用处于活动状态时。如果您从设置页面撤销权限。将重新创建应用进程。在应用程序被杀死之前,它将转到您所在的确切屏幕。但是此时 viewmodel 和所有对象都将为 null。 参考: Crash when disable permission and go back to the app