java - 获得权限后如何立即调用函数?

标签 java android-studio

启动我的应用程序后,我向用户请求此功能的权限:

protected void requestPermission(){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(PERMISSIONS, 100);
        }
    }

我需要在获得用户权限后立即将复选框设置为 true 或 false,但是如果我以这种方式调用函数:

requestPermission();
setCheckboxStates();

函数setCheckboxStates()在获得所有权限之前激活。我可以使用 Thread.sleep() 部分解决这个问题,但它并不总是有效,有时看起来很奇怪。

如何在 requestPermission() 函数完成请求用户权限后立即调用函数 setCheckboxStates()

最佳答案

执行您想要执行的操作的最佳方法是在名为 onRequestPermissionsResult... 的 Activity 中调用此方法...

此方法在用户权限对话框后立即响应...

正如您刚刚放入...在上面的权限代码中...这个...

protected void requestPermission(){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(PERMISSIONS, 100);
        }
    }

在本例中,您发送的号码是 100...您刚刚传递的号码是您在 onRequestPermissionsResult 中使用的号码...用于重新确认哪个号码用户刚刚获得的权限...这是一个示例

@Override
    public void onRequestPermissionsResult(int requestCode,
                                           @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        switch (requestCode) {

            case 100:
                 --CODE HERE--
                break;
        }
    }

正如我之前告诉过你的,你传递的号码与你在此处识别权限的号码相同......

要找到此方法,您可以编写它或按 CTRL + O 找到它

关于java - 获得权限后如何立即调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59031883/

相关文章:

java - Android Studio IDE 在 Ubuntu 15.04 上不显示对话框内容

java - Spring MVC 重定向页面

java - ClassDefNotFound 我第一次从 Eclipse 中启动 Tomcat

java - 在异步任务中使用外部类变量

关于字符串操作的 Java 问题 - 反转文本将 "null"添加到末尾

尝试包含本地库时 Android Studio Gradle 构建失败

java - 如何在 android (0x7f0b005e) R.java 中更改这些数字

java - 无法在 Android Studio 中访问我的小部件

java - 如何在 apache karaf 上启用单点登录和 session 登录?

android - 如何在 Android 中请求启用 GPS 的权限