TransactionTooLargeException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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
- 繼承
-
TransactionTooLargeException
- 屬性
備註
Binder 交易失敗,因為它太大。
在遠端過程調用期間,自變數和呼叫的傳回值會傳送為 Parcel 儲存在 Binder 交易緩衝區中的物件。 如果自變數或傳回值太大而無法放入交易緩衝區中,則呼叫將會失敗。
TransactionTooLargeException 當交易很大且失敗時,會擲回為啟發學習法,因為這些交易最有可能超過交易緩衝區。
Binder 交易緩衝區的固定大小有限,目前為 1MB,由進程進行中所有交易共用。 因此,當有許多交易進行中時,即使大部分個別交易的大小適中時,也會擲回此例外狀況。
遠程過程調用擲回 TransactionTooLargeException時,有兩個可能的結果。 用戶端無法將其要求傳送至服務(最有可能是自變數太大而無法放入交易緩衝區),或者服務無法將其回應傳回用戶端(如果傳回值太大而無法放入交易緩衝區中)。 無法分辨出實際發生的結果之一。 用戶端應該假設發生部分失敗。
避免 TransactionTooLargeException 的關鍵是讓所有交易保持相對較小的狀態。 嘗試將建立 Parcel 自變數所需的記憶體數量降到最低,以及遠端過程調用的傳回值。 避免傳輸大量字串或大型點陣陣圖數位。 可能的話,請嘗試將大型要求分成較小的部分。
如果你正在實作一項服務,對客戶端可執行的查詢施加大小或複雜度限制可能會有幫助。 例如,如果結果集可能會變大,則不允許用戶端一次要求多個記錄。 或者,不要一次傳回所有可用的數據,而是先傳回基本資訊,並視需要讓用戶端要求其他資訊。
的 android.os.TransactionTooLargeExceptionJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| TransactionTooLargeException() |
初始化一個新的 TransactionTooLargeException 類別實例。 |
| TransactionTooLargeException(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
| TransactionTooLargeException(String) |
初始化一個新的 TransactionTooLargeException 類別實例。 |
欄位
| 名稱 | Description |
|---|---|
| is_generated |
表示此投擲物是否由綁定產生。 (繼承來源 Throwable) |
屬性
| 名稱 | Description |
|---|---|
| Cause |
傳回這個可擲回的原因,如果 |
| Class |
取得這個丟棄物的執行時類別。 (繼承來源 Throwable) |
| Handle |
基礎Android實例的句柄。 (繼承來源 Throwable) |
| JavaStackTrace |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Throwable) |
| JniManagedPeerState |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| JniPeerMembers |
提供此類型的 JNI 同儕成員元資料。 |
| LocalizedMessage |
建立這個可擲回的當地語系化描述。 (繼承來源 Throwable) |
| Message |
傳回這個可擲回的詳細訊息字串。 (繼承來源 Throwable) |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Throwable) |
| StackTrace |
會得到這個丟棄物堆疊追蹤的字串表示。 (繼承來源 Throwable) |
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| IJavaPeerable.Finalized() |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Binder 交易失敗,因為它太大。 (繼承來源 JavaException) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
Binder 交易失敗,因為它太大。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |