PendingIntent的使用

来源:互联网 发布:淘宝餐饮制售 编辑:程序博客网 时间:2024/06/06 01:10

PendingIntent的使用

pendingIntent是Intent的封装,是将要运行的Intent,在闹钟管理器,短信管理器和Notification等都广泛使用,因为有时候并不是立即执行一个Intent,而是要延迟执行。

拿闹钟来说,定时设置的动作肯定是要延迟一段时间进行,此时用到的就是PendingIntent.

pendingIntent的对象可以通过PendingIntent的静态方法getActivity(),getService().getBroadcast(),getActivities()等方法来获取。

例如getActivity()

public static PendingIntent getActivity(Context context,                        int requestCode,                        Intent intent,                        int flags)
Context不用说,intent是指需要随后启动的Activity的Intent,

Flags是常数

FLAG_ONE_SHOT:此PendingIntent只会被使用一次,设置过后,如果send()方法被调用了,会自动的取消,若再次请求同样的PendingIntent,会失败

FLAG_NO_CREATE:如果此PendingIntent已经不存在了,返回NULL,不会创建新的。

FLAG_CANCEL_CURRENT:如果此PendingIntent存在,则删除原有的PendingIntent,原有的Intent中的数据都会被删除。

用于设置只有获得新的PendingIntent的实体才能启动intent。

FLAG_UPDATE_CURRENT:如果此PendingIntent存在,则使用原有的对象,但用新的Intent中的数据来取代其数据。如果不关心获得之前的PendingIntent的实体使用新的数据来启动Intent,则可以用这个。

例子:

    Intent intent=new Intent(RemindActivity.this,LabelActivity.class);//创建Intent对象

PendingIntent pi=PendingIntent.getActivity(RemindActivity.this,0, intent,0);//通过构造方法获取PendingIntent对象
            aManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),pi);//在闹钟管理器中使用


0 0
原创粉丝点击