PendingIntent 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
描述意圖與目標動作的相關行為。
[Android.Runtime.Register("android/app/PendingIntent", DoNotGenerateAcw=true)]
public sealed class PendingIntent : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/app/PendingIntent", DoNotGenerateAcw=true)>]
type PendingIntent = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
描述意圖與目標動作的相關行為。 此類別的實例可使用 getActivity(Context, int, Intent, int)、getActivities(Context, int, Intent, int)、getBroadcast(Context, int, Intent, int)及 getService(Context, int, Intent, int) 建立;回傳的物件可以交給其他應用程式,讓他們在之後代表你執行你描述的動作。 透過給予另一個應用程式 PendingIntent,你就是授權它執行你指定的操作,就像另一個應用程式是你自己一樣(擁有相同的權限和身份)。 因此,你應該謹慎設計 PendingIntent:例如,你提供的基礎 Intent 應該明確設定元件名稱為你自己的元件名稱,以確保最終會送到那裡,不會被送到其他地方。 PendingIntent 本身就是系統維護的一個標記,描述用來擷取該標記的原始資料。 這表示即使其擁有的應用程式程序被終止,PendingIntent 本身仍可從其他已獲得的程序中使用。 如果建立應用程式之後重新取得相同類型的 PendingIntent(相同操作、相同意圖動作、資料、類別與元件,以及相同標誌),若該標記仍然有效,將會收到代表相同標記的 PendingIntent,因此可以呼叫 cancel() 來移除該標記。 因此,在取得待定意圖時,了解兩個意圖何時被視為相同非常重要。 人們常犯的錯誤是建立多個 PendingIntent 物件,意圖的「額外」內容只有所不同,期望每次都能得到不同的 PendingIntent。 這不會發生。 用於匹配的 Intent 部分與 Intent.filterEquals 定義相同。 如果你使用兩個 Intent.filterEquals 等效的 Intent 物件,那麼你會得到相同的 PendingIntent。 處理這種情況有兩種典型方式。 如果你真的需要同時啟用多個不同的 PendingIntent 物件(例如同時顯示兩個通知),那麼你需要確保它們有不同的特性,才能將它們與不同的 PendingIntent 關聯起來。 這可以是 Intent.filterEquals 考慮的任何 Intent 屬性,或是提供給 getActivity(Context, int, Intent, int)、getActivities(Context, int, Intent, int)、getBroadcast(Context, int, Intent, int)或 getService(Context, int, Intent, int) 的不同請求碼整數。 如果你每次只需要一個 PendingIntent 來啟用任何一個 Intent,那你也可以用 FLAG_CANCEL_CURRENT 或 FLAG_UPDATE_CURRENT 的旗標來取消或修改你所提供的 Intent 所關聯的目前 PendingIntent。 另外請注意,像 FLAG_ONE_SHOT 或 FLAG_IMMUTABLE 這類旗標描述 PendingIntent 實例,因此用來識別它。 任何用這些旗標建立的 PendingIntent 的呼叫,也必須與其他旗標一同提供。 例如,要取得用 FLAG_ONE_SHOT 建立的現有 PendingIntent,必須同時提供 FLAG_ONE_SHOT 和 FLAG_NO_CREATE。
Android 參考資料。android.app.PendingIntent
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
欄位
| 名稱 | Description |
|---|---|
| FlagAllowUnsafeImplicitIntent |
已淘汰.
標記表示已建立的 PendingIntent |
| FlagMutable |
已淘汰.
標記表示所建立的 PendingIntent 應該是可變的。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Creator | |
| CreatorPackage |
回傳創建這個 PendingIntent 的應用程式的套件名稱,也就是你實際傳送 Intent 的身份。 |
| CreatorUid |
回傳產生這個 PendingIntent 的應用程式 UID,也就是你實際傳送 Intent 的身份。 |
| CreatorUserHandle |
回傳建立此 PendingIntent 的應用程式的使用者帳號,也就是你實際傳送 Intent 的使用者名稱。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| IntentSender |
擷取一個 IntentSender 物件,包裹 PendingIntent 的現有寄件者 |
| IsActivity | |
| IsBroadcast | |
| IsForegroundService | |
| IsImmutable |
檢查這個待處理意圖是否標示 |
| IsService | |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| JniPeerMembers |
提供 Android.App.PendingIntent 的 JNI 綁定基礎設施。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| TargetPackage |
已淘汰.
此方法在 API 等級 17 被棄用。 |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Cancel() |
取消目前有效的 PendingIntent。 |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| DescribeContents() |
描述此 Parcelable 實例的分組表示中包含的特殊物件種類。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| Equals(Object) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetActivities(Context, Int32, Intent[], PendingIntentFlags, Bundle) |
像 |
| GetActivities(Context, Int32, Intent[], PendingIntentFlags) |
像 |
| GetActivity(Context, Int32, Intent, PendingIntentFlags, Bundle) |
取得一個 PendingIntent,啟動新的活動,例如呼叫 |
| GetActivity(Context, Int32, Intent, PendingIntentFlags) |
取得一個 PendingIntent,啟動新的活動,例如呼叫 |
| GetBroadcast(Context, Int32, Intent, PendingIntentFlags) |
取得一個 PendingIntent,該意圖將執行廣播,例如呼叫 |
| GetForegroundService(Context, Int32, Intent, PendingIntentFlags) |
取得一個 PendingIntent,啟動前景服務,例如呼叫 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetService(Context, Int32, Intent, PendingIntentFlags) |
擷取一個 PendingIntent,該意圖將啟動服務,例如呼叫 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| ReadPendingIntentOrNullFromParcel(Parcel) |
方便性功能,用於從 Parcel 讀取 PendingIntent 或 null 指標。 |
| Send() |
執行與此 PendingIntent 相關的操作。 |
| Send(Bundle) |
執行與此待定意圖相關的操作,並提供額外的操作選項。 |
| Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler, String, Bundle) |
執行與此 PendingIntent 相關的操作,讓呼叫者能指定使用意圖的資訊,並在發送完成時收到通知。 |
| Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler, String) |
執行與此 PendingIntent 相關的操作,讓呼叫者能指定使用意圖的資訊,並在發送完成時收到通知。 |
| Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler) |
執行與此 PendingIntent 相關的操作,讓呼叫者能指定使用意圖的資訊,並在發送完成時收到通知。 |
| Send(Context, Result, Intent) |
執行與此 PendingIntent 相關的操作,讓呼叫者能指定該意圖的資訊。 |
| Send(Result, PendingIntent+IOnFinished, Handler) |
執行與此 PendingIntent 相關的操作,讓呼叫者能在發送完成時收到通知。 |
| Send(Result) |
執行與此 PendingIntent 相關的操作。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WritePendingIntentOrNullToParcel(PendingIntent, Parcel) |
方便函式,用於撰寫 PendingIntent 或 null 指標指向 Parcel。 |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
把這個物體壓扁成一個包裹。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
描述意圖與目標動作的相關行為。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
描述意圖與目標動作的相關行為。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
描述意圖與目標動作的相關行為。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |