Android PendingIntent的深入理解
来源:互联网 发布:微信解封软件 编辑:程序博客网 时间:2024/05/16 16:06
Intent比较简单,类似消息,发送给别的activity,别的activity会立即执行
我主要说说什么是PendingIntent以及它的执行过程
以alarm service为例:
1. activity请求一个alarm一般这样来做:
# //创建一个PendingIntent
# Intent intent = new Intent(ALARM_ALERT_ACTION);
# intent.putExtra(ID, id);
# intent.putExtra(TIME, atTimeInMillis);
# PendingIntent sender = PendingIntent.getBroadcast(
# context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
# //获得AlarmMnager并注册一个新闹铃,
# //一次性闹铃的设置
#
# AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
# am.set(AlarmManager.POWER_OFF_WAKEUP, atTimeInMillis, sender);
2. AlarmManager.set调用AlarmManagerService.set
3. AlarmManagerService.set的核心代码如下:
我们可以看到它就是把PendingIntent保存起来而已
4. alarm manager service会定时查看是否有alarm到期了,如果到期了做相应处理。
5. AlarmThread会调用
alarm.operation.send(mContext, 0,
mBackgroundIntent.putExtra(
Intent.EXTRA_ALARM_COUNT, alarm.count),
mResultReceiver, mHandler);
也就是通过PendingIntent.send执行intent操作,alarm这个就会发送ALARM_ALERT_ACTION的broadcast。
补充说明:
1. PendingIntent重要特点是异步处理。
2. 另外有一个要说明的是PendingIntent.onFinished,它可以作为PendingIntent.send的一个参数,
我们知道PendingIntent.send一般是在service中执行,这个调用的send后,回调onFished类的onSendFinished,所以onSendFinished一般也是在service中执行的
我主要说说什么是PendingIntent以及它的执行过程
以alarm service为例:
1. activity请求一个alarm一般这样来做:
# //创建一个PendingIntent
# Intent intent = new Intent(ALARM_ALERT_ACTION);
# intent.putExtra(ID, id);
# intent.putExtra(TIME, atTimeInMillis);
# PendingIntent sender = PendingIntent.getBroadcast(
# context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
# //获得AlarmMnager并注册一个新闹铃,
# //一次性闹铃的设置
#
# AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
# am.set(AlarmManager.POWER_OFF_WAKEUP, atTimeInMillis, sender);
2. AlarmManager.set调用AlarmManagerService.set
3. AlarmManagerService.set的核心代码如下:
我们可以看到它就是把PendingIntent保存起来而已
4. alarm manager service会定时查看是否有alarm到期了,如果到期了做相应处理。
5. AlarmThread会调用
alarm.operation.send(mContext, 0,
mBackgroundIntent.putExtra(
Intent.EXTRA_ALARM_COUNT, alarm.count),
mResultReceiver, mHandler);
也就是通过PendingIntent.send执行intent操作,alarm这个就会发送ALARM_ALERT_ACTION的broadcast。
补充说明:
1. PendingIntent重要特点是异步处理。
2. 另外有一个要说明的是PendingIntent.onFinished,它可以作为PendingIntent.send的一个参数,
我们知道PendingIntent.send一般是在service中执行,这个调用的send后,回调onFished类的onSendFinished,所以onSendFinished一般也是在service中执行的
- Android PendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解[转载]
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- Android中pendingIntent的深入理解
- hdu 3952 Fruit Ninja
- 独立集,覆盖集,支配集,最大团,最大匹配
- 在非控制台程序中打印出printf
- 根据服务元数据生成 WCF 客户端(转自MSDN)
- Android 下U-boot 如何传输参数
- Android PendingIntent的深入理解
- 探索 Linux 内存模型
- Web Service SOAP Client 设置 SOAP Header
- android扫盲篇
- 几种常见排序算法的c语言实现
- 最新Android环境搭建和Helloworld
- 在eclipse中如何在大量项目中查找指定文件
- Java面试经典:Servlet生命周期
- Linux动态库(.so)搜索路径