`

Android之AlarmManager

 
阅读更多

AlarmManager 包含的主要方法:





定时器主要类型:



当你的应用不在运行,而此时你仍然需要你的应用去执行一些操作(比如,短信拦截),只有这种时候才使用AlarmManager, 其他正常情况下的,推荐使用Handler。


AlarmManager 生命周期:

repeating AlarmManager一旦启动就会一直在后台运行(除非执行cancel方法),可以在“应用管理”中看到这个应用状态是正在运行。 “强行停止”可以让Alarmmanager停掉。

尝试了几种任务管理器, 都只能重置计数器(确实释放内存了),但都无法关闭定时器,只有系统自带的“强行停止”奏效。



如果某个AlarmManager已经启动, 程序又再次去启动它,只要PendingIntent是一样,那么之前那个AlarmManager会被release掉。


如何使用AlarmManager?

使用AlarmManager共有三种方式, 都是通过PendingIntent。


这边就举一个使用BroadCast的例子。


首先是创建一个BroadCast类,需要继承BroadCastReceiver, 如下:


下面就让我们启动AlarmManager, 这边就直接在Activity中启动了, 如下:


这边用Repeating的方式。 每隔3秒发一条广播消息过去。RTC_WAKEUP的方式,保证即使手机休眠了,也依然会发广播消息。

最后看一下AndroidManifest文件,主要是注册一下Activity和BroadCast。 (实际使用中最好再加个filter,自己定义一个Action比较好)


Service的其实也差不多,只要在OnStart()方法中写需要执行的操作即可。

做了一个例子,包含了使用AlarmManager的所有三种方式。已经上传至CSDN,下载地址: http://download.csdn.net/detail/feng88724/3812718。 截图:



就写这么多把。





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics