众所周知,在Android 6.0中,如果在运行时拒绝权限并从最近菜单中恢复应用程序,则应用进程将被杀死并强制重新启动以防止任何安全问题:
值得注意的是,当应用程序从上次离开的
不幸的是,这是一个问题,因为它会打破业务逻辑的流程。不能允许用户以这种方式在应用程序中间访问应用程序。
我的问题是,有没有办法强制应用程序从应用程序的第一个
是否有与应用程序重新启动/进程终止/权限切换相关联的任何回调函数?
这个做法是否错误?如果是,正确的做法是什么?
当然,这种行为以前已经被观察到了: 1. Android Preview M: activity recreates after permission grant 2. Application is getting killed after enable/disable permissions from settings on Android M nexus 6 3. Android Marshmallow: permissions change for running app
Activity
中恢复时,操作系统会记住用户最后浏览的Activity
。不幸的是,这是一个问题,因为它会打破业务逻辑的流程。不能允许用户以这种方式在应用程序中间访问应用程序。
我的问题是,有没有办法强制应用程序从应用程序的第一个
Activity
重新启动,而不是从用户离开的页面开始?是否有与应用程序重新启动/进程终止/权限切换相关联的任何回调函数?
这个做法是否错误?如果是,正确的做法是什么?
当然,这种行为以前已经被观察到了: 1. Android Preview M: activity recreates after permission grant 2. Application is getting killed after enable/disable permissions from settings on Android M nexus 6 3. Android Marshmallow: permissions change for running app
onResume
中调用checkSelfPermission
,如果失败了,就使用FLAG_ACTIVITY_CLEAR_TASK
和FLAG_ACTIVITY_NEW_TASK
启动你的根活动。 - Michael