相关疑难解决方法(0)

AlarmManager.AlarmClockInfo的PendingIntent如何工作?

我想用来AlarmManager.AlarmClockInfo设置闹钟.

这个构造函数需要时间和PendingIntent文档中描述的时间和:

可用于显示或编辑闹钟细节的意图.

然后setAlarmClock( )还接受一个待定的意图,在文档中描述为:

警报响起时执行的操作

据我所知,使用的PendingIntent通过setAlarmClock( ),然而,又是怎样PendingIntent使用的AlarmClockInfo?如何用它来编辑闹钟的细节?

android android-pendingintent

11
推荐指数
1
解决办法
5955
查看次数

警报管理器的setExactAndAllowWhileIdle()无法正常工作

我正在开发一个需要在用户设置的确切时间执行特定操作的应用程序。为此,我正在使用setExactAndAllowWhileIdle()方法,因为此文档说具有android 6.0或更高版本的android设备具有休眠模式概念,如果设备闲置一段时间,它将进入休眠模式,并且休眠模式会限制警报。如果我想在设备进入打ze模式时发出警报,那么我有setExactAndAllowWhileIdle()文档所述的方法。本文档还包含手动方式,使设备进入打ze模式以进行测试。因此,我正在使用这种方式进行测试,但是当设备进入打ze模式时,并且当我通过终端命令停止打ze模式时,我的警报不会触发,过去的警报会立即触发。

因此,我的问题是setExactAndAllowWhileIdle()此方法无法在打ze模式下工作,但它必须按照文档中所述工作。我知道此方法的局限性,我每9分钟只能发出一个警报,并且我遵守此规则。所以,我不明白问题出在哪里。

我的代码:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC, d.getTime(), pendingIntent);
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
    alarmManager.setExact(AlarmManager.RTC, d.getTime(), pendingIntent);
else
    alarmManager.set(AlarmManager.RTC, d.getTime(), pendingIntent);
Run Code Online (Sandbox Code Playgroud)

这是方法问题还是我做错方法了?

java android alarmmanager

7
推荐指数
1
解决办法
3436
查看次数

setAlarmClock和setExactAndAllowWhileIdle之间的区别

在此处的链接中提到以下内容(与API级别23中的打盹模式有关):

  • 如果需要设置在Doze中触发的警报,请使用setAndAllowWhileIdle()或setExactAndAllowWhileIdle().
  • 使用setAlarmClock()设置的警报继续正常启动 - 系统在警报触发前不久退出Doze.

关于打盹模式,setExactAndAllowWhileIdle和setAlarmClock有什么区别?

setAlarmClock是一个确切的警报吗?

https://developer.android.com/training/monitoring-device-state/doze-standby#testing_doze_and_app_standby

谢谢.Ĵ

android

7
推荐指数
1
解决办法
516
查看次数