TransactionTooLargeException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインダー トランザクションが大きすぎるため、失敗しました。
[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.TransactionTooLargeException
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
TransactionTooLargeException() | |
TransactionTooLargeException(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
TransactionTooLargeException(String) |
バインダー トランザクションが大きすぎるため、失敗しました。 |
フィールド
is_generated |
バインダー トランザクションが大きすぎるため、失敗しました。 (継承元 Throwable) |
プロパティ
Cause |
このスロー可能な原因、または |
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() |
によって出力されるスタック トレース情報へのプログラムによる |
GetSuppressed() |
この例外を配信するために、通常は -with-resources ステートメントによって |
InitCause(Throwable) |
このスロー可能の 原因 を指定した値に初期化します。 (継承元 Throwable) |
PrintStackTrace() |
このスロー可能とバックトレースを標準エラー ストリームに出力します。 (継承元 Throwable) |
PrintStackTrace(PrintStream) |
このスロー可能とそのバックトレースを、指定された印刷ストリームに出力します。 (継承元 Throwable) |
PrintStackTrace(PrintWriter) |
このスロー可能とバックトレースを、指定された印刷ライターに出力します。 (継承元 Throwable) |
RethrowAsRuntimeException() |
これを未チェックのランタイム例外として再スローします。 (継承元 RemoteException) |
RethrowFromSystemServer() |
システム サーバーから発生したことがわかっている場合は、この例外を再スローします。 (継承元 RemoteException) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Throwable) |
SetStackTrace(StackTraceElement[]) |
および 関連するメソッドによって |
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) |
バインダー トランザクションが大きすぎるため、失敗しました。 |