TransactionTooLargeException クラス

定義

バインダー トランザクションが大きすぎるため、失敗しました。

[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 転送されます。 引数または戻り値が大きすぎてトランザクション バッファーに収まらない場合、呼び出しは失敗します。 TransactionTooLargeException は、トランザクションが大きいときにヒューリスティックとしてスローされ、失敗します。これは、トランザクション バッファーをオーバーフィルする可能性が最も高いトランザクションであるためです。

Binder トランザクション バッファーの固定サイズは制限されており、現在は 1 MB であり、プロセスで進行中のすべてのトランザクションによって共有されます。 したがって、個々のトランザクションの大部分が中程度のサイズの場合でも、進行中のトランザクションが多数ある場合に、この例外がスローされる可能性があります。

リモート プロシージャ呼び出しで がスローされると、2 つの結果が発生する可能性があります TransactionTooLargeException。 クライアントが要求をサービスに送信できなかったか (多くの場合、引数が大きすぎてトランザクション バッファーに収まらない場合)、サービスが応答をクライアントに送り返すことができませんでした (ほとんどの場合、戻り値が大きすぎてトランザクション バッファーに収まらない場合)。 これらの結果のうち、実際に発生した結果を特定することはできません。 クライアントは、部分的なエラーが発生したと想定する必要があります。

回避 TransactionTooLargeException する鍵は、すべてのトランザクションを比較的小さくすることです。 引数の を作成 Parcel するために必要なメモリ量と、リモート プロシージャ 呼び出しの戻り値を最小限に抑えるようにしてください。 文字列や大きなビットマップの巨大な配列を転送しないでください。 可能であれば、大きな要求をより小さな部分に分割してみてください。

サービスを実装する場合は、クライアントが実行できるクエリにサイズまたは複雑さの制約を課すのに役立つ場合があります。 たとえば、結果セットが大きくなる可能性がある場合は、クライアントが一度に複数のレコードを要求できないようにします。 または、使用可能なすべてのデータを一度に返す代わりに、最初に重要な情報を返し、クライアントに必要に応じて後で追加情報を要求します。

android.os.TransactionTooLargeExceptionJava ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

コンストラクター

TransactionTooLargeException()
TransactionTooLargeException(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

TransactionTooLargeException(String)

バインダー トランザクションが大きすぎるため、失敗しました。

フィールド

is_generated

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)

プロパティ

Cause

このスロー可能な原因、または null 原因が存在しないか不明である場合は、その原因を返します。

(継承元 Throwable)
Class

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Throwable)
JniIdentityHashCode

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
JniPeerMembers

バインダー トランザクションが大きすぎるため、失敗しました。

LocalizedMessage

このスロー可能なのローカライズされた説明を作成します。

(継承元 Throwable)
Message

このスロー可能の詳細メッセージ文字列を返します。

(継承元 Throwable)
PeerReference

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
StackTrace

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
ThresholdClass

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

AddSuppressed(Throwable)

指定した例外を、この例外を配信するために抑制された例外に追加します。

(継承元 Throwable)
Dispose()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
Dispose(Boolean)

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
FillInStackTrace()

実行スタック トレースを入力します。

(継承元 Throwable)
GetStackTrace()

によって出力されるスタック トレース情報へのプログラムによる #printStackTrace()アクセスを提供します。

(継承元 Throwable)
GetSuppressed()

この例外を配信するために、通常は -with-resources ステートメントによって try抑制されたすべての例外を含む配列を返します。

(継承元 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()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
UnregisterFromRuntime()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.DisposeUnlessReferenced()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.Finalized()

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.JniManagedPeerState

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.SetJniIdentityHashCode(Int32)

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)
IJavaPeerable.SetPeerReference(JniObjectReference)

バインダー トランザクションが大きすぎるため、失敗しました。

(継承元 Throwable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

バインダー トランザクションが大きすぎるため、失敗しました。

GetJniTypeName(IJavaPeerable)

バインダー トランザクションが大きすぎるため、失敗しました。

適用対象