TransactionTooLargeException Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Error en la transacción binder porque era demasiado 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
- Herencia
-
TransactionTooLargeException
- Atributos
Comentarios
Error en la transacción binder porque era demasiado grande.
Durante una llamada a procedimiento remoto, los argumentos y el valor devuelto de la llamada se transfieren como Parcel objetos almacenados en el búfer de transacciones de Binder. Si los argumentos o el valor devuelto son demasiado grandes para caber en el búfer de transacciones, se producirá un error en la llamada.
TransactionTooLargeException se produce como heurística cuando una transacción es grande y se produce un error, ya que son las transacciones que es más probable que superllenen el búfer de transacciones.
El búfer de transacciones de Binder tiene un tamaño fijo limitado, actualmente de 1 MB, compartido por todas las transacciones en curso para el proceso. Por lo tanto, esta excepción se puede producir cuando hay muchas transacciones en curso incluso cuando la mayoría de las transacciones individuales tienen un tamaño moderado.
Hay dos resultados posibles cuando una llamada a procedimiento remoto produce TransactionTooLargeException. El cliente no pudo enviar su solicitud al servicio (probablemente si los argumentos eran demasiado grandes para caber en el búfer de transacciones) o el servicio no pudo devolver su respuesta al cliente (lo más probable es que el valor devuelto fuera demasiado grande para caber en el búfer de transacciones). No es posible saber cuáles de estos resultados se produjeron realmente. El cliente debe suponer que se produjo un error parcial.
La clave para evitar TransactionTooLargeException es mantener todas las transacciones relativamente pequeñas. Intente minimizar la cantidad de memoria necesaria para crear un Parcel para los argumentos y el valor devuelto de la llamada a procedimiento remoto. Evite transferir grandes matrices de cadenas o mapas de bits grandes. Si es posible, intente dividir las grandes solicitudes en partes más pequeñas.
Si va a implementar un servicio, puede ayudar a imponer restricciones de tamaño o complejidad en las consultas que los clientes pueden realizar. Por ejemplo, si el conjunto de resultados podría ser grande, no permita que el cliente solicite más de unos pocos registros a la vez. Como alternativa, en lugar de devolver todos los datos disponibles a la vez, devuelva primero la información esencial y haga que el cliente solicite información adicional más adelante según sea necesario.
Java documentación para android.os.TransactionTooLargeException.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| TransactionTooLargeException() |
Inicializa una nueva instancia de la clase TransactionTooLargeException. |
| TransactionTooLargeException(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
| TransactionTooLargeException(String) |
Inicializa una nueva instancia de la clase TransactionTooLargeException. |
Campos
| Nombre | Description |
|---|---|
| is_generated |
Indica si el enlace generó este elemento throwable. (Heredado de Throwable) |
Propiedades
| Nombre | Description |
|---|---|
| Cause |
Devuelve la causa de este lanzamiento o |
| Class |
Obtiene la clase en tiempo de ejecución de este elemento throwable. (Heredado de Throwable) |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Throwable) |
| JavaStackTrace |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Throwable) |
| JniManagedPeerState |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| JniPeerMembers |
Proporciona metadatos de miembro del mismo nivel de JNI para este tipo. |
| LocalizedMessage |
Crea una descripción localizada de este elemento throwable. (Heredado de Throwable) |
| Message |
Devuelve la cadena de mensaje de detalle de este elemento throwable. (Heredado de Throwable) |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Throwable) |
| StackTrace |
Obtiene una representación de cadena del seguimiento de la pila para este elemento throwable. (Heredado de Throwable) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| AddSuppressed(Throwable) |
Anexa la excepción especificada a las excepciones que se han suprimido para entregar esta excepción. (Heredado de Throwable) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Throwable) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Throwable) |
| DisposeUnlessReferenced() |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| Equals(Object) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| FillInStackTrace() |
Rellena el seguimiento de la pila de ejecución. (Heredado de Throwable) |
| GetHashCode() |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| GetStackTrace() |
Proporciona acceso mediante programación a la información de seguimiento de la pila impresa por |
| GetSuppressed() |
Devuelve una matriz que contiene todas las excepciones que se han suprimido, normalmente mediante la |
| InitCause(Throwable) |
Inicializa la causa de este lanzamiento en el valor especificado. (Heredado de Throwable) |
| PrintStackTrace() |
Imprime este valor throwable y su retroceso en el flujo de error estándar. (Heredado de Throwable) |
| PrintStackTrace(PrintStream) |
Imprime este elemento throwable y su retroceso en la secuencia de impresión especificada. (Heredado de Throwable) |
| PrintStackTrace(PrintWriter) |
Imprime este elemento throwable y su retroceso en el escritor de impresión especificado. (Heredado de Throwable) |
| RethrowAsRuntimeException() |
Vuelva a iniciarlo como una excepción en tiempo de ejecución no desactivada. (Heredado de RemoteException) |
| RethrowFromSystemServer() |
Vuelva a iniciar esta excepción cuando sepamos que procede del servidor del sistema. (Heredado de RemoteException) |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Throwable) |
| SetJavaStackTrace(JniObjectReference) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| SetStackTrace(StackTraceElement[]) |
Establece los elementos de seguimiento de pila que devolverán |
| ToString() |
Convierte este valor en una cadena. (Heredado de Throwable) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Throwable) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| IJavaPeerable.Finalized() |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Error en la transacción binder porque era demasiado grande. (Heredado de JavaException) |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Error en la transacción binder porque era demasiado grande. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |