AsyncTask中的Android onRequestPermissionsResult

时间:2016-08-12 11:41:14

标签: android permissions

当我想在AsyncTask中使用onRequestPermissionsResult()时,我收到一个错误。我必须在Android 6.0中使用权限。

@Override
public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults){
    switch(permsRequestCode){
        case 200:
            boolean writeAccepted = grantResults[0]== PackageManager.PERMISSION_GRANTED;
            break;
    }
}

错误信息是(@Override line):

method does not override method from its superclass

如何在AsycnTask中捕获onRequestPermissionsResult()?我有活动,但我不能这样。

1 个答案:

答案 0 :(得分:4)

  

如何在AsycnTask中捕获onRequestPermissionsResult()?

你做不到。您需要在用于onRequestPermissionsResult()的同一Java类上实现requestPermissions()。所以:

  • 如果您使用Activity的某些子类作为requestPermissions(),则需要在同一onRequestPermissionsResult()子类上实现Activity

  • 如果您使用Fragment的某些子类作为requestPermissions(),则需要在同一onRequestPermissionsResult()子类上实现Fragment

如果适合您的使用案例,欢迎您从AsyncTask执行 onRequestPermissionsResult()