Метод isVerifyAppsEnabled()
является асинхронным, он вызывает метод OnCompleteListener
onComplete
, чтобы уведомить о готовности результата.
Вероятно, этот блок выполняется до запуска OnCompleteListener
, поэтому значение enabled[0]
остается неизменным на этом этапе.
if (enabled[0]) {
Log.d("GoogleProtectPermission", "Is enabled");
} else {
Log.d("GoogleProtectPermission", "Is disabled");
}
Поскольку синхронного метода для получения нетв результате вам, вероятно, придется каким-то образом изменить свой подход, чтобы учесть эту асинхронность и выполнить зависимые операции, когда результаты обратного вызова готовы или ( крайне не рекомендуется ) выполнить блокирующее ожидание до тех пор, пока не вернется Task
на isVerifyAppsEnabled
завершено.
Кроме того, не обращая внимания на вопрос, в вашем текущем коде, похоже, нет смысла использовать логический массив вместо просто логического для этого, и это
if(result.isVerifyAppsEnabled()) {
enabled[0] = true;
} else {
enabled[0] = false;
}
можно упростить до этого enabled[0] = result.isVerifyAppsEnabled()