当用户撤销Android应用程序的手机设置权限时,该过程将被终止/终止,并且当用户再次打开该应用程序时,该过程将崩溃。是否有可能该应用程序不会崩溃以使用户继续进行他或她刚刚离开的活动?如果有,怎么办?我还是Android开发的新手。
答案 0 :(得分:0)
重新打开应用程序后,您可以捕获onResume
并检查您是否仍然有权继续执行他们在关闭权限之前所做的任何事情。
@Override
protected void onResume()
{
super.onResume();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
{
//We have the location permission!
//We can continue :)
}
else
{
//We don't have the permission anymore :(
finish();
//Or we can request it again, maybe show a dialog saying that it's needed in order to continue?
}
}
答案 1 :(得分:0)
请注意,在onResume()
方法中请求权限不是一个好主意,因为例如,如果用户未授予该权限,则会出现一个对话框,要求用户授予该权限,并且活动将进入onPause()
状态。然后,如果用户拒绝该许可,则活动将回到onResume()
状态,然后再次请求许可,如果用户不批准或选中“不询问”,则会导致无限循环。我再次”复选框。我建议您在onStart()
方法中实现逻辑。