Android-android休眠时,时间变化获取
我的程序想通过时间变化做一些预订的操作,本来使用android的一个广播Intent.ACTION_TIME_TICK可以实现我要的功能,这个广播就是每分钟的时间流失。但是我在实际的使用过程中发现一个问题,当android进入休眠后,CPU处于停止状态,大多程序都被处于挂起的状态。这个action我也就接收不到了。因此程序无法做预订的一些操作。但是想到,android手机在休眠后,再次唤醒,时间还是正常的,所以,我想知道,这些时间是如何变化的
我试了andev的方法,是可行的,进过14个小时,我仍在接受这个广播消息。我的广播接收器中监听了一个自定义的广播和一个Intent.ACTION_TIME_TICK的广播,发现,这2个广播一直能接受到,可见整个手机并没有进入休眠。需要改善下策略,否则真的太耗电了。谢谢andev
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Intent.ACTION_TIME_TICK是使用AlarmManager.RTC,在文档中是这么说的:
在sleep下是不发送的,可以用设置AlarmManager中使用RTC_WAKEUP,
参考代码如下:
AlarmManager am = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent("REFRESH_THIS");
PendingIntent alarmIntent = PendingIntent.getBroadcast(getBaseContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1 , alarmIntent);