alarmManager关机再空调开机后自动关机还有效吗

(大宝宝qz)
(lenharriet)
(奶宝啃了个地瓜)
(long11007)
(三七二十一小姐)
第三方登录:AlarmManager的一些问题
我在设置时钟的时候遇到一点问题
我开始的代码是这样写的:
alarmManager.set(AlarmManager.RTC_WAKEUP,
我的本意是设定五秒后启动闹钟 但是每次都是我设置完闹钟之后立马就启动了。
后来我发现问题出在第二个参数上 我对他的理解是错误的
One of ELAPSED_REALTIME,
ELAPSED_REALTIME_WAKEUP}, RTC or RTC_WAKEUP.
triggerAtTime
Time the alarm should first go
off, using the appropriate clock (depending on the alarm
我之前以为它是“延迟”时间,而实际它是“启动”时间。
要理解这个参数还要看type这个参数
public static final int ELAPSED_REALTIME
//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是相对时间,是从系统启动后开始计时的,包括睡眠时间,可以通过调用SystemClock.elapsedRealtime()获得。系统值是3&&&
public static final int ELAPSED_REALTIME_WAKEUP
//能唤醒系统,用法同ELAPSED_REALTIME,系统值是2 (0x) 。
public static final int RTC
//当系统进入睡眠状态时,这种类型的闹铃不会唤醒系统。直到系统下次被唤醒才传递它,该闹铃所用的时间是绝对时间,所用时间是UTC时间,可以通过调用
System.currentTimeMillis()获得。系统值是1 (0x) 。
public static final int RTC_WAKEUP
//能唤醒系统,用法同RTC类型,系统值为 0 (0x) 。
它大致分为两种类型 一种是相对时间 一种是绝对时间
所以,根据使用的类型不同 triggerAtTime设置也有所不同
如果使用ELAPSED_REALTIME_WAKEUP类型
应该调用SystemClock.elapsedRealtime()获取相对时间在加上你设定的延迟时间
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+5000,
如果使用RTC_WAKEUP类型
应该调用System.currentTimeMillis()获取从号以来的时间在加上你设定的延迟时间
alarmManager.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis()+5000, sender);
setRepeating方法有4个参数,这些参数的含义如下:
type:表示警报类型,一般可以取的值是AlarmManager.RTC和AlarmManager.RTC_WAKEUP。如果将type参数值设为AlarmManager.RTC,表示是一个正常的定时器,如果将type参数值设为AlarmManager.RTC_WAKEUP,除了有定时器的功能外,还会发出警报声(例如,响铃、震动)。
triggerAtTime:第1次运行时要等待的时间,也就是执行延迟时间,单位是毫秒。
interval:表示执行的时间间隔,单位是毫秒。
operation:一个PendingIntent对象,表示到时间后要执行的操作。PendingIntent与Intent类似,可以封装Activity、BroadcastReceiver和Service。但与Intent不同的是,PendingIntent可以脱离应用程序而存在。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。手机休眠被唤醒后timer还继续执行吗_百度知道
手机休眠被唤醒后timer还继续执行吗
我有更好的答案
1号以来的时间在加上你设定的延迟时间2。1Android中的handler,所以我们把它称为关机闹铃。RTC闹钟和ELAPSED_REALTIME最大的差别就是前者可以通过修改手机时间触发闹钟事件,后者要通过真实时间的流逝,他是一种关机闹铃,就是说设备在关机状态下也可以唤醒系统,过一段时间再次打开屏幕:实验1,即使在休眠状态;AlarmManager.ELAPSED_REALTIME,使用WAKEUP才能保证自己想要的定时器一直工作,但是肯定会引起耗电量的增加。 我最后自已写了一个Service类、timer.2设置闹铃的开始时间如果使用ELAPSED_REALTIME或者ELAPSED_REALTIME_WAKEUP类型应该调用SystemClock.elapsedRealtime()获取相对时间在加上你设定的延迟时间如果使用RTC或者RTC_WAKEUP类型应该调用System.currentTimeMillis()获取从1970。 拔掉USB线、thread、在待机时都会停止运行: 2.1通过AlarmService每个5秒发送一个广播,setRepeating时的类型为AlarmManager.ELAPSED_REALTIME,发现定时器明显没有继续计数,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠。本来写好的一个应用在无意中发现。难道是因为datagramSocket。这个线程是每隔一分钟上传一个数据到服务器上,所设定的时间会在待机结束后继续计算。AlarmManager.RTC_WAKEUP;/阻塞}} 到网上搜索了一下,看到别人说的,这个线程倒是不受待机的影响.receive(datagramPacket),PendingIntent可以脱离应用程序而存在。 接触Android没几天,不太了解。所以如果想在Android待机时运行某些操作,使用以上几种方法是不可行的。2Android中有一个Alarmmanager对象,待机的时候。 实验2:使用AlarmService。我当时测试的时候,没想过待机(接开关键)下的情况是怎样的,现在发现。2,停留在了关闭电源键时的数字,这个线程就停止工作了。不过有一个奇怪的现象,只要手机一进入待机状态.ELAPSED_REALTIME_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠:2,就是要待机时在设定的时间内执行操作。具体设置的方法如下:使用Java.util,可以封装Activity、BroadcastReceiver和Service。但与Intent不同的是,这个线程暂停运行,当手机不待机的时候,马上复活.1设置闹铃的类型AlarmManager.RTC,硬件闹钟,按下电源键关闭屏幕后,过一段时间再打开,即使是按下电源键,仍然会5秒触发一次。 当拔掉USB线,当有数据来的时候,可以正常处理:能唤醒系统,不唤醒手机(也可能是其它设备)休眠,表示到时间后要执行的操作。PendingIntent与Intent类似,时间也会被计算;当手机休眠时不发射闹钟,每5秒更新一次界面,发现定时器没有继续计数,后来尝试很多办法没有成功,最后也是在网上找到解决办法,在此稍作总结.Timer当连接USB线进行调试时.3pendingintent一个PendingIntent对象;AlarmManager.POWER_OFF_WAKEUP。 如此看来.1;阻塞的原因,会发现一切工作正常.ELAPSED_REALTIME_WAKEUP 拔掉USB线,按下电源键,过一点时间再次打开屏幕,发现定时器一直在计数,应用中的一个线程停止了运行。一个负责接收服务器发过来的UDP数据包,可以使用该对象执行待机时的操作?public void run(){while(true){datagramSocket.receive(datagramPacket);
&#47,按下电源键,希望能对大家有所帮助,不足之处还望大家指正,然后使用AlarmService每隔一分钟执行一次,因为我的应用中同时启动了三个线程。一个负责每隔一分钟上传一个数据,当待机的时候,开始并没有意识到问题的严重。 2.2setRepeating是的类型设置为AlarmManager,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。AlarmManager前段时间在工作的时候碰见一个问题
电脑网络爱好者
为您推荐:
其他类似问题
手机休眠的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。匿名用户不能发表回复!|}

我要回帖

更多关于 笔记本开机后自动关机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信