Android 报警赢得';在不关闭应用程序的情况下,不要停止响铃
我正试图在我正在使用的应用程序中添加一个警报,但出于某些愚蠢的原因,一旦警报响起,我就无法在不关闭应用程序的情况下关闭警报 警报由切换按钮激活。如果它打开,警报会在预定的时间响,当它关闭时,它不会…或者至少,它不应该响 以下是ToggleButton的OnClick代码:Android 报警赢得';在不关闭应用程序的情况下,不要停止响铃,android,broadcastreceiver,alarmmanager,alarm,Android,Broadcastreceiver,Alarmmanager,Alarm,我正试图在我正在使用的应用程序中添加一个警报,但出于某些愚蠢的原因,一旦警报响起,我就无法在不关闭应用程序的情况下关闭警报 警报由切换按钮激活。如果它打开,警报会在预定的时间响,当它关闭时,它不会…或者至少,它不应该响 以下是ToggleButton的OnClick代码: @OnClick(R.id.alarmToggle2) protected void onAlarmToggleClicked(){ if(alarmToggle.isChecked()){ alarm
@OnClick(R.id.alarmToggle2)
protected void onAlarmToggleClicked(){
if(alarmToggle.isChecked()){
alarmTimeText.setTextColor(Color.GREEN);
alarmTimeText.setVisibility(View.VISIBLE);
//Switch on the alarm
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, alarmHour);
calendar.set(Calendar.MINUTE, alarmMinute);
//It's now time to set off the alarm
Log.d(TAG, "ALARM");
alarmReceiverIntent = new Intent(RemindersActivity.instance(),
AlarmReceiver.class);
broadcastIntent = PendingIntent.getBroadcast(getContext(), alarmId,
alarmReceiverIntent, 0);
//RTC means that the alarm won't be used if the device is asleep, RTC_WAKEUP means
//that it will.
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), broadcastIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, broadcastIntent);
} else {
Log.d(TAG, "Cancel alarm");
alarmTimeText.setVisibility(View.INVISIBLE);
alarmManager.cancel(broadcastIntent);
alarmText.setText("");
}
}
下面是AlarmReceiver类的onReceive()方法的代码:
后来我想出了一个解决方案:铃声现在是AlarmReceiver的一个静态变量,这就是我如何停止闹钟铃声的方法:
if(!alarmToggle.isChecked()) {
//Stop the alarm from ringing
if(AlarmReceiver.ringtone.isPlaying())
AlarmReceiver.ringtone.stop();
alarmTimeText.setVisibility(View.INVISIBLE);
alarmManager.cancel(broadcastIntent);
alarmText.setText("");
}
后来我想出了一个解决方案:铃声现在是AlarmReceiver的一个静态变量,这就是我如何停止闹钟铃声的方法:
if(!alarmToggle.isChecked()) {
//Stop the alarm from ringing
if(AlarmReceiver.ringtone.isPlaying())
AlarmReceiver.ringtone.stop();
alarmTimeText.setVisibility(View.INVISIBLE);
alarmManager.cancel(broadcastIntent);
alarmText.setText("");
}