手机休眠状态下,alarmmanager不准的问题

良秋 2013-10-13 08:53:46

情况是这样的。在手机休眠时(手机暗屏,锁屏) 绑定一个alarmmanager定时4秒,结果4秒之后有时能接收到广播,有时候不行,必须在我唤醒设备时才能收到广播。


//动态绑定广播接受者
final IntentFilter filter2 = new IntentFilter();
filter2.addAction(ALARM);
MyBurglarService.this.registerReceiver(alarmReceiver, filter2);

//注册广播
Intent intent =new Intent();
intent.setAction(ALARM);
PendingIntent sender=
PendingIntent.getBroadcast(MyBurglarService.this, 0, intent, 0);

//使用AlarmManager在指定时间后发送广播
AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);

alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() +
4 * 1000, sender);



//延时操作,判断是否亮屏
private BroadcastReceiver alarmReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {

//有时能到这,有时需要唤醒设备才能接收到
}
...全文
419 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThemeLove 2015-06-22
  • 打赏
  • 举报
回复
计时的时候可以用SystemClock.elapsedRealtime()包括系统睡眠的时间, 或者用 SystemClock.uptimeMillis()不包括系统睡眠的时间, 根据自己的旋转。
cs121 2014-05-29
  • 打赏
  • 举报
回复
在manifest中注册BroadcastReceiver!
良秋 2013-10-13
  • 打赏
  • 举报
回复
自己先顶一个
tantahe 2013-10-13
  • 打赏
  • 举报
回复
论坛有相关的帖子,你搜搜看。 设备在进入睡眠以后,你就收不到广播了。可以考虑拿个WakeLock,不用的时候释放掉,这样CPU不会休眠,但是比较费电。

80,470

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧