停止Android alarmmanager的setrepeat

san*_*tta 16 android alarmmanager android-pendingintent

我已经创建了警报,如下所示

Intent intent = new Intent(this, Areceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 1234567, intent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, timenow, 3000, sender);
Run Code Online (Sandbox Code Playgroud)

我创建了一个按钮来停止闹钟.在onclick方法中,我编写了以下代码

Intent intentstop = new Intent(this, Areceiver.class);
PendingIntent senderstop = PendingIntent.getBroadcast(this,
            0, intentstop, 0);
AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManagerstop.cancel(senderstop);
Run Code Online (Sandbox Code Playgroud)

但工作并没有停止.可能是什么问题?

byt*_*der 33

当您启动警报时,您已将您的待处理意图发送到request_code = 1234567.但是当你试图阻止它时你正在使用0.尝试停止时应使用此功能并且应该可以使用

Intent intentstop = new Intent(this, Areceiver.class);
PendingIntent senderstop = PendingIntent.getBroadcast(this,
            1234567, intentstop, 0);
AlarmManager alarmManagerstop = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManagerstop.cancel(senderstop);
Run Code Online (Sandbox Code Playgroud)