Android AlarmManager的一些问题】的更多相关文章

1.AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2.AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi): 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作. (2)setRepea…
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一次,那用轮询也是一个不错的选择,因为不需要额外搭建推送服务器,不用额外配置推送服务.另外推送现在一般以维持长连接的方式实现,在手机客户端也会耗费一定的电量.今天就介绍一个在Android上实现轮询机制的方法——使用AlarmManager AlarmManager在Android中主要用来定时处理一…
取消alarm使用AlarmManager.cancel()函数,传入参数是个PendingIntent实例. 该函数会将所有跟这个PendingIntent相同的Alarm全部取消,怎么判断两者是否相同,android使用的是intent.filterEquals(),具体就是判断两个PendingIntent的action.data.type.class和category是否完全相同. 具体代码如下: 设置闹钟: // 指定启动AlarmActivity组件 Intent intent =…
在消息的获取上是选择 轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如 更新检查,可能是半个小时或一个小时一次,那用轮询也是一个不错的选择,因为不需要额外搭建推送服务器,不用额外配置推送服务.另外推送现在一般以维持长 连接的方式实现,在手机客户端也会耗费一定的电量.今天就介绍一个在Android上实现轮询机制的方法——使用AlarmManager AlarmManager 在Android中主要用来定…
什么是AlarmManager? AlarmManager它是Android经常使用的系统-Level提醒服务,我们指定为广播中的特定时间Intent. 我们设定一个时间,然后在该时间到来时.AlarmManager为我们广播一个我们设定的Intent,通常我们使用 PendingIntent,PendingIntent能够理解为Intent的封装包,简单的说就是在Intent上在加个指定的动作.在使用Intent的时候,我们还须要在运行startActivity.startService或se…
Android的闹钟实现机制非常easy, 仅仅须要调用AlarmManager.Set()方法将闹钟设置提交给系统,当闹钟时间到后,系统会依照我们的设定发送指定的广播消息.我们写一个广播去接收消息做对应处理就可以. 第一步是设置闹钟: <span style="color: rgb(51, 51, 51); font-family: 'Microsoft YaHei', Tahoma, Helvetica, SimSun, sans-serif; font-size: 14px; lin…
Android系统闹钟定时功能框架,总体来说就是用数据库存储定时数据,有一个状态管理器来统一管理这些定时状态的触发和更新.在Andriod系统中实现定时功能,最终还是要用到系统提供的AlarmManager,只是当一个定时完成后怎么继续处理,或者中间怎么更新定时的时间或者状态,像闹钟这种应用程序,每天重复定时,或者一周选择其中的几天,闹钟响了延迟5分钟再次响铃,这时候就需要想一种好的办法来让管理这些数据和状态,下面就分析一下Android系统闹钟的实现. 1.基本结构 Alarm 代表一条定时数…
在Android的Alarm机制中,使用AlarmManager可以实现类似闹钟这样的定时任务.在毕业设计项目中要实现定时任务的功能,所以在这里先进行一下梳理. (一)AlarmManager与Broadcast结合实现定时任务 AlarmManager主要可以发送定时广播,然后在广播接收器中执行任务的具体逻辑:还可以取消已经创建的定时任务.创建可以周期重复执行的定时任务等,将这几个功能进行封装,封装成AlarmManagerUtil类如下: import android.app.AlarmMa…
在开发互联网应用时候,我们常常要使用心跳来保证客户端与服务器的连接.怎么完成心跳很关键,在说道客户端心跳功能时,如果使用Timer或者专门开起一个线程来做心跳的工作,会浪费CPU工作时间,而且也会更多的消耗电量.相对来说使用AlarmManager 来处理心跳的话,使用的是系统全局的定时服务,会一定成都减少CPU的消耗,耗电量也会少很多.正好这段时间也要做推送,就顺便学习了一下怎么做心跳. // 取消已经注册的与参数匹配的闹铃 void   cancel(PendingIntent operat…
AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service. 下面的代码详细的介绍了两种定时方式的使用: (1)在指定时长后执行某项操作 //操作:发送一个广播,广播接收后Toast提示定…
AlarmManager简介及使用场景: AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,它的作用和Timer有点相似. 都有两种相似的用法: (1).在指定时长后执行某项操作 (2).周期性的执行某项操作 AlarmManager对象配合Intent使用,可以定时的开启一个Activity,发送一个BroadCast,或者开启一个Service. AlarmManager 包含的主要方法: void cancel(PendingIntent operat…
我开始的代码是这样写的 alarmManager.set(AlarmManager.RTC_WAKEUP, (5*1000), sender); 我的本意是设定五秒后启动闹钟 但是每次都是我设置完闹钟之后立马就启动了.后来我发现问题出在第二个参数上 我对他的理解是错误的typeOne of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or RTC_WAKEUP. triggerAtTimeTime the alarm should first…
Android-服务中监听电源键和Home键的广播  http://blog.csdn.net/u014657752/article/details/49512485 Android开发之如何监听让服务不被杀死(service+broadcast)(转)  http://www.cnblogs.com/pengyingh/articles/4844764.html Android startService 启动自动解锁点亮屏幕 http://blog.csdn.net/yiyaaixuexi/a…
现在普遍的手机都会有一个闹钟的功能,如果使用Android来实现一个闹钟可以使用AtarmManager来实现.AtarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服务.AlarmManager对象一般不直接实例化,而是通过Context.getsystemservice(Context.ALARM_SERVICE)方法获得. 下面是我们运用之前用到的TimePickerDialog结合AlarmManager,实现一个可以设定任意时间而且可以重复的闹钟,演示效…
说实话,之前写的两篇博客Android广播机制Broadcast详解.Android时间.日期相关类和方法以及现在要写的,都算是为之后要写的闹钟应用做铺垫,有兴趣的话,大家可以去看看前两篇博客. 一.AlarmManager简介 对于一个闹钟应用的实现,个人觉得最主要的应该要属于AlarmManager了.AlarmManager称为全局定时器,字面意思就是闹钟管理(请原谅我蹩脚的英语),是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent.简单的说就是我…
原地址http://blog.csdn.net/maosidiaoxian/article/details/21776697 AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent.而使用Intent的时候,我们还需要它执行一个动作,如startActivity,startService,startBroadcast,才能使Intent有用.通常我们使用PendingIntent,它可以理解为对Intent的封装,包含了指定的动作.…
http://blog.csdn.net/zhouzhiwengang/article/details/13022325 在Android中,AlarmManager提供了不受休眠状态的系统定时功能,其一般使用方法如下. 1.创建一个BroadcastReceiver类的子类,接收定时器事件: public class MyReceiver extends BroadcastReceiver { ...... } 2.在AndroidMenifest.xml中定义上述广播事件接收类的定义: <r…
Android闹钟 AlarmManager的使用 AlarmManager介绍 AlarmManager这个类提供对系统闹钟服务的访问接口. 你可以为你的应用设定一个在未来某个时间唤醒的功能. 当闹钟响起,实际上是系统发出了为这个闹钟注册的广播,会自动开启目标应用. 注册的闹钟在设备睡眠的时候仍然会保留,可以选择性地设置是否唤醒设备,但是当设备关机和重启后,闹钟将会被清除. 在alarm的receiver的onReceive()方法被执行的时候,Alarm Manager持有一个CPU唤醒锁,…
http://stackoverflow.com/questions/6864712/android-alarmmanager-not-waking-phone-up 主要说的是,对于android 的 AlarmManager,虽然系统会按照要求执行相应代码,但是唤醒的时间可能很短,如果不尽快利用PowerManager.WakeLock对系统进行wake保持操作,系统会在还没执行到你想执行的代码时,又重新进入睡眠状态.…
1.android中通常是使用AlarmManager来定时启动一个单次或重复多次操作的.具体的说就是我们通过AlarmManager设定一个时间和注册一个intent到系统中,然后在该时间到来时,系统为我们发送一个广播,即执行我们设定的Intent(要执行的操作),通常我们使用 PendingIntent来实现“要执行的操作”,PendingIntent可以理解为Intent的封装包,简单的说就是将来要执行的Intent操作.他们的区别是:在使用Intent的时候,我们还需要在执行startA…
场景:在app崩溃或手动退出或静默安装后能够自动重启应用activity 前提:得到系统签名 platform.pk8.platform.x509.pem及signapk.jar 三个文件缺一不可(系统源码里有) 步骤一.设置app开机启动(注意新安装的apk必须启动一次才能够接收到开机广播,否则是一直不会启动的) <!-- 开机启动 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPL…
AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver). 概述: 该类提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序.当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后自动启动目标程序,如果它没有正在运行.注册的闹钟会被保留即使设备处于休眠中(如果闹钟在给定时间响起可以选择是…
对应AlarmManage有一个AlarmManagerServie服务程 序,该服务程序才是正真提供闹铃服务的,它主要维护应用程序注册下来的各类闹铃并适时的设置即将触发的闹铃给闹铃设备(在系统中,linux实现的设备名 为”/dev/alarm”),并且一直监听闹铃设备,一旦有闹铃触发或者是闹铃事件发生,AlarmManagerServie服务程序就会遍历闹铃列 表找到相应的注册闹铃并发出广播.该服务程序在系统启动时被系统服务程序system_service启动并初始化闹铃设备(/dev/al…
AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver). 概述: 该类提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序.当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后自动启动目标程序,如果它没有正在运行.注册的闹钟会被保留即使设备处于休眠中(如果闹钟在给定时间响起可以选择是…
1.AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能 2.AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi): 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作. (2)setRepea…
android中涉及到将服务器中数据变化信息通知用户一般有两种办法,推送和轮询. 消息推送是服务端主动发消息给客户端,因为第一时间知道数据发生变化的是服务器自己,所以推送的优势是实时性高.但服务器主动推送需要单独开发一套能让客户端持久连接的服务端程序,不过现在已经有很多开源的代码实现了基于xmmp协议的推送方案,而且还可以使用谷歌的推送方案.但有些情况下并不需要服务端主动推送,而是在一定的时间间隔内客户端主动发起查询. 譬如有这样一个app,实时性要求不高,每天只要能获取10次最新数据就能满足要…
最近做了一个应用,要求如下: 程序运行之后的一段时间,分别触发3个不同的事件.当然很快就想到了Android中的AlarmManager和BroadcastReceiver.但是毕竟Mono环境和Java环境还是有所不同的,那么在Mono环境下如何实现呢? 最初我是想获取3个AlarmManager来实现,每个AlarmManager控制一个事件的发生,采用3个不同的BroadcastReceiver来接受传递过来的Intent消息,但觉得这样有点浪费资源.后来仔细查看Api才发现只要合理的设置…
Android实现定时任务一般会使用以上(Handler Timer Thread AlarmManager CountDownTimer)五种方式.当然还有很多组合使用(比如Handler+Thread 比如Handler类自带的postDelyed 比如Handler+Timer+TimerTask)的方式就不一一说明了,知道了每个小部分的使用结合起来使用当然就不是问题啦. 本文以简单的实现1s让数字加1的一个小实例.(考虑只点击一次的情况.连续点击 需要控制没有结束的时候 不许点击的逻辑)…
AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent.而使用Intent的时候,我们还需要它执行一个动作,如startActivity,startService,startBroadcast,才能使Intent有用.通常我们使用PendingIntent,它可以理解为对Intent的封装,包含了指定的动作. 我们可以通过PendingIntent的静态方法得到一个PendingIntent对象,如下: PendingIntent p…
AlarmManager称呼为全局定时器,有的称呼为闹钟.其实它的作用和Timer有点相似. 都有两种相似的用法: (1)在指定时长后执行某项操作(2)周期性的执行某项操作 AlarmManager 包含的主要方法: // 取消已经注册的与参数匹配的定时器 void cancel(PendingIntent operation) //注册一个新的延迟定时器void set(int type, long triggerAtTime, PendingIntent operation) //注册一个重…