- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Alarmmanager
的 setAlarmClock
方法来做闹钟应用。当我从 6.00 AM 设置闹钟并在 6.01 AM 设置闹钟时。它延迟且不准确。
setAlarmClock
时的代码。
Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent.putExtra(AppConstant.REMINDER, note.convertToString());
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
note.getId(), intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
alarmManager.setAlarmClock(new AlarmManager.AlarmClockInfo(getTargetTime().getTimeInMillis(),pendingIntent),pendingIntent);
}
闹钟设置日历时的代码
private Calendar getTargetTime() {
Calendar calNow = Calendar.getInstance();
Calendar calSet = (Calendar) calNow.clone();
calSet.set(Calendar.DAY_OF_MONTH, sDay);
calSet.set(Calendar.HOUR_OF_DAY, sHour);
calSet.set(Calendar.MINUTE, sMinute);
calSet.set(Calendar.SECOND, 0);
calSet.set(Calendar.MILLISECOND, 0);
return calSet;
}
好的,我从这个项目中实现https://github.com/googlesamples/android-DirectBoot .
这个项目使用 setAlarmClock 在时间到了时发出警报。
更新:我将 setAlarmClock 更改为 setExact
这段代码:
alarmManager.setExact(AlarmManager.RTC_WAKEUP, getTargetTime().getTimeInMillis(), pendingIntent);
它对我不起作用,但它会延迟相同的 setAlarmClock。
当前时间(毫秒):1473318858628我通过使用 http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/#.V9EPXfmLRD8 更改为默认格式
2016 年 9 月 8 日星期四 14:14:18 GMT+0700
以毫秒为单位设置闹钟时间:1473318960000
2016 年 9 月 8 日星期四 14:16:00 GMT+0700
现在是14:16:00,不报警。
14.20:00 闹钟,请延迟约 4 分钟。 (以毫秒为单位的时间 = 1473319200207)
感谢
最佳答案
您应该阅读文档。这是根据带有摘录的文档设计的:
Note: Beginning with API 19 (KITKAT) alarm delivery is inexact: the OS will shift alarms in order to minimize wakeups and battery use. There are new APIs to support applications which need strict delivery guarantees; see setWindow(int, long, long, PendingIntent) and setExact(int, long, PendingIntent). Applications whose targetSdkVersion is earlier than API 19 will continue to see the previous behavior in which all alarms are delivered exactly when requested.
https://developer.android.com/reference/android/app/AlarmManager.html
关于android - setAlarmClock 在 android marshmallow 中不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39363500/
有这个new AlarmManager.setAlarmClock(...) method在 API 21 中,它设置一个新的警报并显示一个状态栏警报图标。 我是这样使用的: AlarmManager
我很难让我的 radio 闹钟按预期工作,我在这里阅读了很多关于该主题的帖子,但不幸的是没有一个对我有帮助。 AlarmManager am = (AlarmManager) getSystemSer
我正在尝试构建一个闹钟,用户可以在其中选择闹钟必须响起的时间和工作日。为此,我使用了 setAlarmClock() ,因为即使设备进入打盹模式,警报也必须触发。 问题是,setAlarmClock(
在下文的链接中提到了以下内容(API 级别 23 中的 Doze 模式): 如果您需要设置在打瞌睡时触发的警报,请使用 setAndAllowWhileIdle() 或 setExactAndAllo
在我应该在指定时间触发警报的应用程序中,警报的目的是通过 Notification 通知用户,我对获得不精确的结果感到绝望。闹钟响了,但不是在指定的时间。当警报设置和它应该响起的时间之间的时间很长时,
我使用 Alarmmanager 的 setAlarmClock 方法来做闹钟应用。当我从 6.00 AM 设置闹钟并在 6.01 AM 设置闹钟时。它延迟且不准确。 setAlarmClock时的代
在我设置闹钟的函数中调用 alarmmanager.setAlarmClock 时,我遇到了崩溃(仅在 android 7 上)。我不知道这里有什么问题。以及如何解决这个问题 碰撞。 这是调用 ala
这个问题在这里已经有了答案: to know next alarm time using setRepeating() method (1 个回答) 关闭 5 年前。 我根据我的应用程序要求使用 s
我有一个闹钟应用程序,它使用以下代码为 Marshmallow 及更高版本的设备设置闹钟: val alarmIntent: PendingIntent = Intent(context, Alarm
我像这样创建一个 PendingIntent: Intent intent = new Intent(context, AlarmReceiver.class); intent.setAction("
我使用 AlarmManager.setAlarmClock() 来设置闹钟。所有设备(包括三星)都会触发闹钟,但在搭载 Android 9 的三星设备上,时钟附近的小闹钟图标(屏幕右上角)不见了。我
我是一名优秀的程序员,十分优秀!