AlarmMananger及PendingIntent的首次使用
来源:互联网 发布:字体修改软件 编辑:程序博客网 时间:2024/05/17 06:58
多low,也得做好总结——题记
看项目代码的时候,发现在项目的首个页面,调用了AlarmManager启动一个广告(BroadCastReceiver),这玩意儿没见过,于是就上网查了些资料,想了解是干啥,作用很简单:启动一个系统级的定时器,定时的启动某个Intent(这个intent可以代表某个activity,service或者BroadCastReceiver,项目还没有看完,但我目前猜测应该是心跳包啥的)。
于是照着网上给的案例,自己试着写了一个小程序,并将心得归纳如下:
AlarmManager的实例对象,依然是通过context强大的资源获取功能获得,一般是这样创建实例
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
对象创建完成之后,她的使用也很简单,一句代码
am.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis ,1000 , pendingIntent);
四个参数的意义如下:
AlarmManager.RTC_WAKEUP:定时器的工作模式,该参数表示,即使在定时器睡眠的情况下,依然能够唤醒系统,执行相应操作。除了这个参数,还有包括:AlarmManager.RTC、 AlarmManager.POWER_OFF_WAKEUP......等其他属性。
System.currentTimeMillis:这是个long类型的数据,代表闹钟的起始时间,这个参数个第一个定时器的工作模式参数有关系,不同的模式需要的时间不同,有的是相对时间,有的是绝对时间,这里我们用的当前系统时间。
1000:这个是时间间隔,单位是毫秒,也就是说,我们每隔1秒钟,定时器任务执行一次。
pendingIntent:这个数据是一个PendingIntent类型的对象,PendingIntent对象中会封装一个intent的对象,一般我们使用Intent的对象时候,都需要手动启动一下,如:startService(Intent)。。。等等,而PendingIntent则可以简化这个步骤(下面会解释),她的初始化如下:
Intent intent = newIntent("cn.lichangshun.test.MyReceiver");
intent.putExtra("msg","What are you fucking!!!!"); PendingIntent pendingIntent = PendingIntent.getBroadcast(this , 0 , intent , 0);
从代码中可以看到,定义一个intent对象后,直接封装他到PendingIntent即可,值得注意的是,根据intent启动对象的不同,有getBroadcast,getService,getActivity这几个方法需要选择。因为我的程序中intent启动是一个广告,所以我用的getBroadcast这个方法,里面的四个参数分别是
this:当前activity对象
0:int类型的请求码,直接写0;
intent:要封装的intent对象。
flag:标志位,我是没有心情看下去的,也是直接按照网上的说法,写0;
以上步骤完成之后,关于alarmManager和pendingIntent的简单使用,就没有了,剩下的则是完成intent启动的广告代码的编写,不赘述,直接上图:
activity:
广告:
配置文件:
- AlarmMananger及PendingIntent的首次使用
- PendingIntent android.app.PendingIntent.getActivity的使用
- PendingIntent的使用
- PendingIntent的使用
- PendingIntent的使用
- Android PendingIntent的使用
- PendingIntent的使用
- android之PendingIntent的使用
- DevExpress软件的安装及首次使用流程讲解
- RecycleView的首次使用
- Intent和PendingIntent的使用和区别
- 发送短信中,PendingIntent.getBroadcase的使用
- 关于onNewIntent的使用&PendingIntent flag赋值
- Notification和PendingIntent的结合使用
- Android PendingIntent使用的特殊情况
- Android中PendingIntent的简单使用
- Android开发之PendingIntent的使用
- 首次使用Csdn的感觉
- JAVA使用正则表达式Demo
- 【HNOI2010】【BZOJ2003】Matrix 矩阵
- Contiki常用数据结构
- js时间转化为指定格式时间
- The Pros and Cons of Pair Programming
- AlarmMananger及PendingIntent的首次使用
- 工作中常用命令总结
- 第二周项目-c语言中函数参数传递的三种方式
- hdu 2011 多项式求和
- 快速径向对称 只检测暗对称 代码(2)
- 寻找凸包
- redis常用命令
- Contiki之父Adam Dunkels经典论文介绍
- 网站测试之死链接测试