TransactionTooLargeException Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A transação binder falhou porque era muito grande.
[Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)]
public class TransactionTooLargeException : Android.OS.RemoteException
[<Android.Runtime.Register("android/os/TransactionTooLargeException", DoNotGenerateAcw=true)>]
type TransactionTooLargeException = class
inherit RemoteException
- Herança
-
TransactionTooLargeException
- Atributos
Comentários
A transação binder falhou porque era muito grande.
Durante uma chamada de procedimento remoto, os argumentos e o valor retornado da chamada são transferidos como Parcel objetos armazenados no buffer de transação do Binder. Se os argumentos ou o valor retornado forem muito grandes para caber no buffer de transação, a chamada falhará.
TransactionTooLargeException é gerada como uma heurística quando uma transação é grande e falha, pois essas são as transações que são mais propensas a substituir o buffer de transação.
O buffer de transação do Binder tem um tamanho fixo limitado, atualmente de 1MB, que é compartilhado por todas as transações em andamento para o processo. Consequentemente, essa exceção pode ser gerada quando há muitas transações em andamento, mesmo quando a maioria das transações individuais tem tamanho moderado.
Há dois resultados possíveis quando uma chamada de procedimento remoto é gerada TransactionTooLargeException. O cliente não pôde enviar sua solicitação para o serviço (provavelmente se os argumentos forem muito grandes para caber no buffer de transação) ou se o serviço não pôde enviar sua resposta de volta ao cliente (provavelmente se o valor retornado fosse muito grande para caber no buffer de transação). Não é possível dizer qual desses resultados realmente ocorreu. O cliente deve assumir que ocorreu uma falha parcial.
A chave para evitar TransactionTooLargeException é manter todas as transações relativamente pequenas. Tente minimizar a quantidade de memória necessária para criar um Parcel para os argumentos e o valor retornado da chamada de procedimento remoto. Evite transferir grandes matrizes de cadeias de caracteres ou bitmaps grandes. Se possível, tente dividir grandes solicitações em partes menores.
Se você estiver implementando um serviço, poderá ajudar a impor restrições de tamanho ou complexidade nas consultas que os clientes podem executar. Por exemplo, se o conjunto de resultados puder se tornar grande, não permita que o cliente solicite mais do que alguns registros de cada vez. Como alternativa, em vez de retornar todos os dados disponíveis de uma só vez, retorne as informações essenciais primeiro e faça com que o cliente solicite informações adicionais mais tarde, conforme necessário.
Java documentação para android.os.TransactionTooLargeException.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Construtores
| Nome | Description |
|---|---|
| TransactionTooLargeException() |
Inicializa uma nova instância da classe TransactionTooLargeException. |
| TransactionTooLargeException(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime. |
| TransactionTooLargeException(String) |
Inicializa uma nova instância da classe TransactionTooLargeException. |
Campos
| Nome | Description |
|---|---|
| is_generated |
Indica se esse throwable foi gerado pela associação. (Herdado de Throwable) |
Propriedades
| Nome | Description |
|---|---|
| Cause |
Retorna a causa desse jogo ou |
| Class |
Obtém a classe de runtime deste throwable. (Herdado de Throwable) |
| Handle |
O identificador para a instância subjacente do Android. (Herdado de Throwable) |
| JavaStackTrace |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Throwable) |
| JniManagedPeerState |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| JniPeerMembers |
Fornece metadados de membro par JNI para esse tipo. |
| LocalizedMessage |
Cria uma descrição localizada deste throwable. (Herdado de Throwable) |
| Message |
Retorna a cadeia de caracteres de mensagem de detalhes deste throwable. (Herdado de Throwable) |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Throwable) |
| StackTrace |
Obtém uma representação de cadeia de caracteres do rastreamento de pilha para este throwable. (Herdado de Throwable) |
| ThresholdClass |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
| ThresholdType |
Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código. |
Métodos
| Nome | Description |
|---|---|
| AddSuppressed(Throwable) |
Acrescenta a exceção especificada às exceções que foram suprimidas para entregar essa exceção. (Herdado de Throwable) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| Dispose() |
Libera os recursos mantidos por esse par Java. (Herdado de Throwable) |
| Dispose(Boolean) |
Libera os recursos mantidos por esse par Java. (Herdado de Throwable) |
| DisposeUnlessReferenced() |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| Equals(Object) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| FillInStackTrace() |
Preenche o rastreamento da pilha de execução. (Herdado de Throwable) |
| GetHashCode() |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| GetStackTrace() |
Fornece acesso programático às informações de rastreamento de pilha impressas por |
| GetSuppressed() |
Retorna uma matriz que contém todas as exceções que foram suprimidas, normalmente pela instrução |
| InitCause(Throwable) |
Inicializa a causa desse throwable para o valor especificado. (Herdado de Throwable) |
| PrintStackTrace() |
Imprime esse throwable e seu backtrace no fluxo de erros padrão. (Herdado de Throwable) |
| PrintStackTrace(PrintStream) |
Imprime esse throwable e seu backtrace no fluxo de impressão especificado. (Herdado de Throwable) |
| PrintStackTrace(PrintWriter) |
Imprime esse throwable e seu backtrace no gravador de impressão especificado. (Herdado de Throwable) |
| RethrowAsRuntimeException() |
Realoque isso como uma exceção de runtime desmarcada. (Herdado de RemoteException) |
| RethrowFromSystemServer() |
Recuemos essa exceção quando soubermos que ela veio do servidor do sistema. (Herdado de RemoteException) |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Throwable) |
| SetJavaStackTrace(JniObjectReference) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| SetStackTrace(StackTraceElement[]) |
Define os elementos de rastreamento de pilha que serão retornados |
| ToString() |
Converte esse valor em uma cadeia de caracteres. (Herdado de Throwable) |
| UnregisterFromRuntime() |
Cancela o registro desse par Java do runtime de interoperabilidade. (Herdado de Throwable) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IJavaPeerable.Disposed() |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| IJavaPeerable.Finalized() |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
A transação binder falhou porque era muito grande. (Herdado de JavaException) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
A transação binder falhou porque era muito grande. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |