Task API
Task — это асинхронная задача, возвращающая ошибку или значение в соответствующих callback-уведомлениях (onFailure
, onSuccess
).
В качестве примера реализации используется метод SDK-оплаты getProducts()
.
Обработка результата выполнения Task
Методы, выполняемые асинхронно, возвращают Task<T>
. К примеру, RuStoreBillingClient.getProducts()
возвращает Task<ProductsResponse>
. Это означает, что Task
вернет ProductsResponse
, если выполнение метода было успешно (см. ниже).
val task: Task<ProductsResponse> = RuStoreBillingClient.products.getProducts()
Чтобы получить результат успешного выполнения метода, добавьте callback OnSuccessListener
к Task
(см. ниже).
val task: Task<ProductsResponse> = RuStoreBillingClient.products.getProducts()
task.addOnSuccessListener {
// Process success
}
Чтобы получить ошибку выполнения, добавьте callback OnFailureListener
к Task
(см. ниже).
val task: Task<ProductsResponse> = RuStoreBillingClient.products.getProducts()
task.addOnFailureListener {
// Process error
}
Если необходимо получить факт любого завершения Task
, используйте метод addOnCompletionListener
(см. ниже).
Если [cause] == null
, то Task
был завершен успешно через [Task.TaskResultProvider.setTaskSuccessResult]
.
Если [cause] == [TaskCancellationException]
, то Task
завершен через метод [Task.cancel]
, в противном случае [Task]
был завершен c ошибкой через [Task.TaskResultProvider.setTaskErrorResult]
.
val task: Task<ProductsResponse> = RuStoreBillingClient.products.getProducts()
task.addOnCompletionListener{ cause ->
// Process
}