我的接收器多次设置闹钟。当我启动我的设备时,我正在使用启动接收器并调用服务来重置先前设置的警报。假设,我设置了三个警报,但 onRecieve()被多次触发。
在我的服务中用于重置警报的代码:
sender = PendingIntent.getBroadcast(UpdateService.this,nofify_id,
intent1, PendingIntent.FLAG_ONE_SHOT);
if(Build.VERSION.SDK_INT >= 23)
{
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
}
else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < 23) {
am.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
}
else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT )
{
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
}
这是将被称为
的接收器代码public class OneShotAlarm extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
// calling multiple times`enter code here`
}
}