java - AlarmManager setRepeating()

标签 java android broadcastreceiver alarmmanager

我的程序旨在创建一个重复警报,触发一个广播接收器,进而发出通知。使用用户输入的时间间隔重复警报。

例如,如果我想将闹钟设置为每 10 秒运行一次,我该怎么做?

 am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),  10000, calpendingintent);

这样对吗?由于某种原因,我的广播接收器也没有被调用。

public static void createAlarms(Context mcontext) {
    cal = Calendar.getInstance();
    cal.add(Calendar.HOUR, alarmintervalint);
    calintent = new Intent(mcontext, AlarmBroadcastReceiver.class);
    calpendingintent = PendingIntent.getBroadcast(mcontext.getApplicationContext(), 12345, calintent, 0);
    am = (AlarmManager)mcontext.getSystemService(Activity.ALARM_SERVICE);
    am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),  10000, calpendingintent);
}

我的 broadcastreceiver 类没有被调用,我不确定我使用的“setRepeating()”方法是否设置正确..

请帮忙!

最佳答案

使用此代码

  AlarmManager alarmMgr;
  PendingIntent pendingIntent;

    public void startAlarmManager()
        {
             Intent dialogIntent = new Intent(getBaseContext(), AlarmBroadcastReceiver.class);

                  alarmMgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
                  pendingIntent = PendingIntent.getBroadcast(this, 0, dialogIntent,PendingIntent.FLAG_CANCEL_CURRENT);

                  alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), 10000, pendingIntent);

              }
        }

是否要停止闹钟

public void stopAlarmManager()
{          
    if(alarmMgr != null)
       alarmMgr.cancel(pendingIntent);
}

记住不要忘记在 list 文件中注册 Receiver

  <receiver android:name=".AlarmBroadcastReceiver" >
        </receiver>

关于java - AlarmManager setRepeating(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718154/

相关文章:

java - Jackson XmlMapper 映射嵌套元素的 XML 属性

java - 如何手动设置自动生成的 ID?

java - android - 向 MainActivity 发送广播,然后显示 TextView

Java,Hibernate java.lang.ClassCastException : org. hibernate.collection.PersistentSet 无法转换为 java.util.HashSet

java - AbstractStringBuilder 可能的性能增强

php - 使用mysql数据库的Android登录 Activity

android - 运行工作线程以定期更新 UI 的最佳实践

android - 在 Android 应用程序中添加带边框的动态 TableLayout

Android <receiver> - 未调用 BroadcastReceiver

android - 如何使用广播接收器检测蓝牙状态变化?