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 |
Возвращает причину этого бросаемого объекта или |
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() |
Предоставляет программный доступ к сведениям трассировки стека, напечатанным с помощью |
GetSuppressed() |
Возвращает массив, содержащий все исключения, которые были подавлены, как правило, инструкцией |
InitCause(Throwable) |
Инициализирует причину этого вызываемого объекта указанным значением. (Унаследовано от Throwable) |
PrintStackTrace() |
Выводит этот бросаемый объект и его обратную трассировку в стандартный поток ошибок. (Унаследовано от Throwable) |
PrintStackTrace(PrintStream) |
Выводит этот бросаемый объект и его обратную трассировку в указанный поток печати. (Унаследовано от Throwable) |
PrintStackTrace(PrintWriter) |
Печатает этот бросаемый объект и его обратную трассировку в указанный модуль записи печати. (Унаследовано от Throwable) |
RethrowAsRuntimeException() |
Повторно разберите это как исключение среды выполнения без флажка. (Унаследовано от RemoteException) |
RethrowFromSystemServer() |
Повторное создание этого исключения, если известно, что оно поступило с системного сервера. (Унаследовано от RemoteException) |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Throwable) |
SetStackTrace(StackTraceElement[]) |
Задает элементы трассировки стека, которые будут возвращены |
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 из-за слишком большого размера. |