PendingIntents / AlarmManager不会添加延迟但会立即触发警报
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PendingIntents / AlarmManager不会添加延迟但会立即触发警报相关的知识,希望对你有一定的参考价值。
我正在努力让待定的意图/警报管理器正常工作。我相信我让它正常工作,但后来我添加了一些'aar'文件到libs并且不得不重做gradle,这似乎打破了我的基本警报。
private void setAlarm(int hour, int min, Calendar cal, Intent intent) {
Log.d(TAG, "Hello, we made it for " + hour + min);
// cal = Calendar.getInstance();
// cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, min);
cal.set(Calendar.SECOND, 0);
Log.e("MainActivity", "Hello - timer after - " + cal.getTime());
intent.putExtra("extra", "yes");
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis() , pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
}
这是我用来触发警报的片段。意图与另一个触发警报的类相关联。
答案
请尝试以下代码。
private void setAlarm(int hour, int min, Calendar cal, Intent intent) {
Log.d(TAG, "Hello, we made it for " + hour + min);
// cal = Calendar.getInstance();
// cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, min);
cal.set(Calendar.SECOND, 0);
Log.e("MainActivity", "Hello - timer after - " + cal.getTime());
intent.putExtra("extra", "yes");
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (hour * 60 * 60 * 1000) + (min * 60 * 1000) , pendingIntent);
Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
}
以上是关于PendingIntents / AlarmManager不会添加延迟但会立即触发警报的主要内容,如果未能解决你的问题,请参考以下文章
此应用小部件片段中所有意图 (PendingIntents) 的逻辑流
Android 通知:使用多个 PendingIntents 点击按钮时打开 Activity 并运行 BroadcastReceiver
尝试添加第二个主屏幕小部件后,PendingIntents 不会触发
我需要 Widget 和 PendingIntents 方面的帮助