TransactionTooLargeException Класс

Определение

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

[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
Наследование
Атрибуты

Комментарии

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

Во время удаленного вызова процедуры аргументы и возвращаемое значение вызова передаются в виде Parcel объектов, хранящихся в буфере транзакций binder. Если аргументы или возвращаемое значение слишком велики для размещения в буфере транзакций, вызов завершится ошибкой. TransactionTooLargeException возникает как эвристика, когда транзакция имеет большой размер, и она завершается сбоем, так как именно эти транзакции, скорее всего, переполнят буфер транзакций.

Буфер транзакций связывателя имеет ограниченный фиксированный размер( в настоящее время 1 МБ), который совместно используется всеми выполняемыми транзакциями для процесса. Следовательно, это исключение может быть вызвано, если выполняется много транзакций, даже если большинство отдельных транзакций имеют средний размер.

Существует два возможных результата, когда удаленный вызов процедуры вызывает исключение TransactionTooLargeException. Либо клиенту не удалось отправить запрос службе (скорее всего, если аргументы были слишком большими, чтобы поместиться в буфер транзакций), либо службе не удалось отправить ответ клиенту (скорее всего, если возвращаемое значение слишком велико для размещения в буфере транзакций). Невозможно сказать, какой из этих результатов на самом деле произошел. Клиент должен предположить, что произошел частичный сбой.

Ключ к предотвращению TransactionTooLargeException заключается в том, чтобы все транзакции были относительно небольшими. Попробуйте свести к минимуму объем памяти, необходимый Parcel для создания для аргументов и возвращаемого значения вызова удаленной процедуры. Избегайте передачи огромных массивов строк или больших растровых изображений. Если это возможно, постарайтесь разбить большие запросы на более мелкие части.

Если вы реализуете службу, это может помочь наложить ограничения размера или сложности на запросы, которые могут выполнять клиенты. Например, если результирующий набор может стать большим, не разрешайте клиенту запрашивать несколько записей одновременно. Кроме того, вместо того, чтобы возвращать все доступные данные одновременно, сначала верните необходимую информацию и заставьте клиента запросить дополнительную информацию позже по мере необходимости.

Документация по Java для android.os.TransactionTooLargeException.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

TransactionTooLargeException()
TransactionTooLargeException(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

TransactionTooLargeException(String)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

Поля

is_generated

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)

Свойства

Cause

Возвращает причину этого бросаемого объекта или null значение , если причина не существует или неизвестна.

(Унаследовано от Throwable)
Class

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Throwable)
JniIdentityHashCode

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
JniPeerMembers

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

LocalizedMessage

Создает локализованное описание этого вызываемого объекта.

(Унаследовано от Throwable)
Message

Возвращает строку подробного сообщения этого бросаемого объекта.

(Унаследовано от Throwable)
PeerReference

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
StackTrace

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AddSuppressed(Throwable)

Добавляет указанное исключение к исключениям, которые были подавлены для доставки этого исключения.

(Унаследовано от Throwable)
Dispose()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
Dispose(Boolean)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
FillInStackTrace()

Заполняет трассировку стека выполнения.

(Унаследовано от Throwable)
GetStackTrace()

Предоставляет программный доступ к сведениям трассировки стека, напечатанным с помощью #printStackTrace().

(Унаследовано от Throwable)
GetSuppressed()

Возвращает массив, содержащий все исключения, которые были подавлены, как правило, инструкцией try-with-resources для доставки этого исключения.

(Унаследовано от Throwable)
InitCause(Throwable)

Инициализирует причину этого вызываемого объекта указанным значением.

(Унаследовано от Throwable)
PrintStackTrace()

Выводит этот бросаемый объект и его обратную трассировку в стандартный поток ошибок.

(Унаследовано от Throwable)
PrintStackTrace(PrintStream)

Выводит этот бросаемый объект и его обратную трассировку в указанный поток печати.

(Унаследовано от Throwable)
PrintStackTrace(PrintWriter)

Печатает этот бросаемый объект и его обратную трассировку в указанный модуль записи печати.

(Унаследовано от Throwable)
RethrowAsRuntimeException()

Повторно разберите это как исключение среды выполнения без флажка.

(Унаследовано от RemoteException)
RethrowFromSystemServer()

Повторное создание этого исключения, если известно, что оно поступило с системного сервера.

(Унаследовано от RemoteException)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Throwable)
SetStackTrace(StackTraceElement[])

Задает элементы трассировки стека, которые будут возвращены #getStackTrace() и напечатаны соответствующими методами #printStackTrace() .

(Унаследовано от Throwable)
ToString()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
UnregisterFromRuntime()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.DisposeUnlessReferenced()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.Finalized()

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.JniManagedPeerState

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

(Унаследовано от Throwable)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

GetJniTypeName(IJavaPeerable)

Не удалось выполнить транзакцию Binder из-за слишком большого размера.

Применяется к