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 方面的帮助

PendingIntents / AlarmManager不会添加延迟但会立即触发警报

Android PendingIntent FLAG_NO_CREATE 不返回 null