В настоящее время у меня есть следующий асинхронный вызов с использованием API-интерфейса задач.
Асинхронный
Task<GoogleSignInAccount> task = googleSignInClient.silentSignIn();
if (!task.isSuccessful()) {
task.addOnCompleteListener(task1 -> {
// Now, this is main thread.
try {
GoogleSignInAccount googleSignInAccount = task1.getResult(ApiException.class);
} catch (ApiException e) {
if (e.getStatusCode() == GoogleSignInStatusCodes.SIGN_IN_REQUIRED) {
}
}
});
}
Я хотел бы реорганизовать его в синхронный вызов.
Синхронный
Task<GoogleSignInAccount> task = googleSignInClient.silentSignIn();
try {
// How to capture ApiException in Tasks.await
GoogleSignInAccount googleSignInAccount = Tasks.await(task);
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
Однако мне было интересно, как я могу получить желаемый ApiException
, как то, что я делал, используя task.getResult(ApiException.class)
?