Interface de chamada - Android

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • A interface Chamada representa uma solicitação que está preparada para processamento.

    As opções de processamento possíveis incluem:
    • cancelar
    • enfileirar
    • execute
    • mapa

    Um objeto de chamada não pode ser processado duas vezes.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    solicitação Solicitação Solicitação original que iniciou esta chamada.

    Chamada - cancel()

    Cancela a chamada associada, se possível (melhor esforço).

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 3. Retorna
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

    private var inFlightDataRequestCall: Call<*>? = null 
    fun cancelTransfer() = inFlightDataRequestCall?.cancel() 

    Chamada - enqueue(onSuccess: consumidor <Response<T> >, onError: consumidor<NowDataError> )

    Programa a solicitação a ser executada assim que o thread\sistema estiver disponível para executar esta solicitação.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    onSuccess Consumidor<Response<T> > Retorno de chamada a ser executado se a chamada for bem-sucedida. Resposta HTTP com o corpo analisado para o tipo de dados especificado pelo parâmetro T.
    Nota:
    Consumidor é um tipo Java OOB para consumo assíncrono de um objeto. Nesse caso, a chamada usa genérico para retornar um tipo de resposta <T> em que T é o tipo de objeto.
    em caso de erro Consumidor<NowDataError> Retorno de chamada a ser executado se a chamada falhar.

    NowDataError

    Tabela 5. Retorna
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

    fun makeGraphQLRequest(query: String) { 
      val call = graphQLService.graphQLRequest(query) 
      call.enqueue( 
        { response -> handleResponse(response) }, 
        { nowDataError -> handleError(nowDataError) } 
      ) 
    } 

    Chamar - execute()

    Invoca a solicitação imediatamente. Bloqueia até que a resposta seja processada ou esteja com erro.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 7. Retorna
    Tipo Descrição
    Resposta<T> Dados de resposta no formato definido no parâmetro T.

    O exemplo de código a seguir mostra como chamar esta função.

    val response = apiService.data(NowAPIService.Endpoint( 
      relativePath = CASES_API, 
      requestMethod = HttpMethod.GET, 
      requireAuth = true) 
    ).execute()