我的程序旨在创建一个重复警报,触发一个广播接收器,进而发出通知。使用用户输入的时间间隔重复警报。
例如,如果我想将闹钟设置为每 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/