PendingIntent Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A description of an Intent and target action to perform with it.
[Android.Runtime.Register("android/app/PendingIntent", DoNotGenerateAcw=true)]
public sealed class PendingIntent : Java.Lang.Object, Android.OS.IParcelable, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/app/PendingIntent", DoNotGenerateAcw=true)>]
type PendingIntent = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Inheritance
- Attributes
- Implements
Remarks
A description of an Intent and target action to perform with it. Instances of this class are created with #getActivity
, #getActivities
, #getBroadcast
, and #getService
; the returned object can be handed to other applications so that they can perform the action you described on your behalf at a later time.
By giving a PendingIntent to another application, you are granting it the right to perform the operation you have specified as if the other application was yourself (with the same permissions and identity). As such, you should be careful about how you build the PendingIntent: almost always, for example, the base Intent you supply should have the component name explicitly set to one of your own components, to ensure it is ultimately sent there and nowhere else.
A PendingIntent itself is simply a reference to a token maintained by the system describing the original data used to retrieve it. This means that, even if its owning application's process is killed, the PendingIntent itself will remain usable from other processes that have been given it. If the creating application later re-retrieves the same kind of PendingIntent (same operation, same Intent action, data, categories, and components, and same flags), it will receive a PendingIntent representing the same token if that is still valid, and can thus call #cancel
to remove it.
Because of this behavior, it is important to know when two Intents are considered to be the same for purposes of retrieving a PendingIntent. A common mistake people make is to create multiple PendingIntent objects with Intents that only vary in their "extra" contents, expecting to get a different PendingIntent each time. This does <em>not</em> happen. The parts of the Intent that are used for matching are the same ones defined by Intent#filterEquals(Intent) Intent.filterEquals
. If you use two Intent objects that are equivalent as per Intent#filterEquals(Intent) Intent.filterEquals
, then you will get the same PendingIntent for both of them.
There are two typical ways to deal with this.
If you truly need multiple distinct PendingIntent objects active at the same time (such as to use as two notifications that are both shown at the same time), then you will need to ensure there is something that is different about them to associate them with different PendingIntents. This may be any of the Intent attributes considered by Intent#filterEquals(Intent) Intent.filterEquals
, or different request code integers supplied to #getActivity
, #getActivities
, #getBroadcast
, or #getService
.
If you only need one PendingIntent active at a time for any of the Intents you will use, then you can alternatively use the flags #FLAG_CANCEL_CURRENT
or #FLAG_UPDATE_CURRENT
to either cancel or modify whatever current PendingIntent is associated with the Intent you are supplying.
Also note that flags like #FLAG_ONE_SHOT
or #FLAG_IMMUTABLE
describe the PendingIntent instance and thus, are used to identify it. Any calls to retrieve or modify a PendingIntent created with these flags will also require these flags to be supplied in conjunction with others. E.g. To retrieve an existing PendingIntent created with FLAG_ONE_SHOT, <b>both</b> FLAG_ONE_SHOT and FLAG_NO_CREATE need to be supplied.
Java documentation for android.app.PendingIntent
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.
Fields
FlagAllowUnsafeImplicitIntent |
Obsolete.
Flag indicating that the created PendingIntent with |
FlagMutable |
Obsolete.
Flag indicating that the created PendingIntent should be mutable. |
Properties
Class |
Returns the runtime class of this |
Creator | |
CreatorPackage |
Return the package name of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. |
CreatorUid |
Return the uid of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. |
CreatorUserHandle |
Return the user handle of the application that created this PendingIntent, that is the user under which you will actually be sending the Intent. |
Handle |
The handle to the underlying Android instance. (Inherited from Object) |
IntentSender |
Retrieve a IntentSender object that wraps the existing sender of the PendingIntent |
IsActivity | |
IsBroadcast | |
IsForegroundService | |
IsImmutable |
Check if this PendingIntent is marked with |
IsService | |
JniIdentityHashCode | (Inherited from Object) |
JniPeerMembers | |
PeerReference | (Inherited from Object) |
TargetPackage |
Obsolete.
This member is deprecated. |
ThresholdClass |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. (Inherited from Object) |
ThresholdType |
This API supports the Mono for Android infrastructure and is not intended to be used directly from your code. (Inherited from Object) |
Methods
Cancel() |
Cancel a currently active PendingIntent. |
Clone() |
Creates and returns a copy of this object. (Inherited from Object) |
DescribeContents() |
Describe the kinds of special objects contained in this Parcelable's marshalled representation. |
Dispose() | (Inherited from Object) |
Dispose(Boolean) | (Inherited from Object) |
Equals(Object) |
Indicates whether some other object is "equal to" this one. (Inherited from Object) |
GetActivities(Context, Int32, Intent[], PendingIntentFlags, Bundle) |
Like |
GetActivities(Context, Int32, Intent[], PendingIntentFlags) |
Like |
GetActivity(Context, Int32, Intent, PendingIntentFlags, Bundle) |
Retrieve a PendingIntent that will start a new activity, like calling
|
GetActivity(Context, Int32, Intent, PendingIntentFlags) |
Retrieve a PendingIntent that will start a new activity, like calling
|
GetBroadcast(Context, Int32, Intent, PendingIntentFlags) |
Retrieve a PendingIntent that will perform a broadcast, like calling
|
GetForegroundService(Context, Int32, Intent, PendingIntentFlags) |
Retrieve a PendingIntent that will start a foreground service, like calling
|
GetHashCode() |
Returns a hash code value for the object. (Inherited from Object) |
GetService(Context, Int32, Intent, PendingIntentFlags) |
Retrieve a PendingIntent that will start a service, like calling
|
JavaFinalize() |
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. (Inherited from Object) |
Notify() |
Wakes up a single thread that is waiting on this object's monitor. (Inherited from Object) |
NotifyAll() |
Wakes up all threads that are waiting on this object's monitor. (Inherited from Object) |
ReadPendingIntentOrNullFromParcel(Parcel) |
Convenience function for reading either a PendingIntent or null pointer from a Parcel. |
Send() |
Perform the operation associated with this PendingIntent. |
Send(Bundle) |
Perform the operation associated with this PendingIntent, supplying additional options for the operation. |
Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler, String, Bundle) |
Perform the operation associated with this PendingIntent. |
Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler, String) |
Perform the operation associated with this PendingIntent. |
Send(Context, Result, Intent, PendingIntent+IOnFinished, Handler) |
Perform the operation associated with this PendingIntent. |
Send(Context, Result, Intent) |
Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use. |
Send(Result, PendingIntent+IOnFinished, Handler) |
Perform the operation associated with this PendingIntent. |
Send(Result) |
Perform the operation associated with this PendingIntent. |
SetHandle(IntPtr, JniHandleOwnership) |
Sets the Handle property. (Inherited from Object) |
ToArray<T>() | (Inherited from Object) |
ToString() |
Returns a string representation of the object. (Inherited from Object) |
UnregisterFromRuntime() | (Inherited from Object) |
Wait() |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>. (Inherited from Object) |
Wait(Int64, Int32) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
Wait(Int64) |
Causes the current thread to wait until it is awakened, typically by being <em>notified</em> or <em>interrupted</em>, or until a certain amount of real time has elapsed. (Inherited from Object) |
WritePendingIntentOrNullToParcel(PendingIntent, Parcel) |
Convenience function for writing either a PendingIntent or null pointer to a Parcel. |
WriteToParcel(Parcel, ParcelableWriteFlags) |
Flatten this object in to a Parcel. |
Explicit Interface Implementations
IJavaPeerable.Disposed() | (Inherited from Object) |
IJavaPeerable.DisposeUnlessReferenced() | (Inherited from Object) |
IJavaPeerable.Finalized() | (Inherited from Object) |
IJavaPeerable.JniManagedPeerState | (Inherited from Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) | (Inherited from Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) | (Inherited from Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) | (Inherited from Object) |
Extension Methods
JavaCast<TResult>(IJavaObject) |
Performs an Android runtime-checked type conversion. |
JavaCast<TResult>(IJavaObject) | |
GetJniTypeName(IJavaPeerable) |