gpt4 book ai didi

android - onRequestPermissionsResult 被无限调用

转载 作者:IT老高 更新时间:2023-10-28 23:32:03 25 4
gpt4 key购买 nike

我正在使用运行时权限请求,但存在问题。似乎无限调用了回调方法onRequestPermissionsResult。所以当用户拒绝请求时,应用程序没有响应..

每次用户单击“拒绝”时,权限对话框都会重新出现。只有单击“不再询问”,它才不会再次出现。* 按“允许”时效果很好 - 没有任何问题。

有什么方法可以取消一次调用的方法吗?

if (ActivityCompat.checkSelfPermission( this, Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED )
{
ActivityCompat.requestPermissions( this, new String[]{ Manifest.permission.ACCESS_FINE_LOCATION }, LOCATION_PERMISSION_CUSTOM_REQUEST_CODE );
}


@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch( requestCode )
{
case LOCATION_PERMISSION_CUSTOM_REQUEST_CODE:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted
MyManager.connect();
return;
} else {
// permission denied
return;
}
default:
return;
}
}

最佳答案

这里的问题,正如您在评论中提到的,是在 onResume 方法中调用了触发请求权限对话框的代码。

当请求对话框权限完成时,运行时在触发它的 Activity 上调用 onResume,就像任何以对话框为主题的 Activity 一样。

在您的情况下,拒绝权限将再次触发对 onResume 的调用,这将再次显示对话框并导致无限循环。

将此权限请求移至 onCreate 或其他一些流程将解决您的问题。

关于android - onRequestPermissionsResult 被无限调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com